color work, top bar progress, page option positioning

This commit is contained in:
Effie 2025-10-08 01:36:16 +11:00
parent 1996cd40b7
commit d9a2c4703c
8 changed files with 292 additions and 187 deletions

View File

@ -1,4 +1,6 @@
:root { :root {
--black: oklch(0 0 0);
--white: oklch(1 0 0);
--blue-1: oklch(0.96 0.02 270); --blue-1: oklch(0.96 0.02 270);
--blue-2: oklch(0.92 0.04 270); --blue-2: oklch(0.92 0.04 270);
--blue-3: oklch(0.79 0.11 270); --blue-3: oklch(0.79 0.11 270);

View File

@ -1,10 +1,10 @@
:root { :root {
--sidebar-width: calc(4.2em + 9vw); --sidebar-width: calc(10.2em + calc(.3vw * 9) + var(--space));
} }
#grid { #grid {
display: grid; display: grid;
grid-template-columns: var(--sidebar-width) auto var(--sidebar-width); grid-template-columns: 10.2em calc(.3vw * 9) 1fr auto var(--sidebar-width);
grid-template-rows: grid-template-rows:
[topstart] auto [topstart] auto
[title] auto [title] auto
@ -16,23 +16,39 @@
height: 100%; height: 100%;
max-width: calc(1200px + var(--sidebar-width) + var(--sidebar-width)); max-width: calc(1200px + var(--sidebar-width) + var(--sidebar-width));
margin: auto; margin: auto;
padding-left: calc(var(--space) * 2); padding: calc(var(--space) * 2);
padding-right: calc(var(--space) * 2);
} }
#page { #page {
margin-top: calc(var(--space) * 6); margin-top: calc(0.3vw * 9);
grid-column: 3 / 5;
grid-row: title / bottomstart ;
display: grid;
grid-template-rows: subgrid;
grid-template-columns: subgrid;
} }
#topbar { #topbar {
column-gap: var(--space); column-gap: var(--space);
grid-column: 2; grid-column: 1 / 6;
grid-row: topstart ; grid-row: topstart / bottomstart;
grid-template-columns: 1fr 4fr 1fr; grid-template-columns: subgrid;
grid-template-rows: subgrid;
}
#top-logo {
grid-row: 1;
} }
#nav-search, #nav-search-bar { #nav-search, #nav-search-bar {
grid-column: 3 / 4;
width: 100%; width: 100%;
position: relative;
}
#user-menu {
margin-left: calc(var(--space) * 3);
grid-column: 4 / 5;
} }
#versions { #versions {
@ -45,12 +61,11 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: calc(var(--space) * 2); gap: calc(var(--space) * 2);
width: calc(var(--space) * 18); width: 100%;
} }
.nav-menu { .nav-menu {
border-radius: var(--space); border-radius: calc(var(--space) / 2);
margin-right: var(--space);
} }
.nav-show { .nav-show {
@ -72,8 +87,13 @@
} }
.site-links > a:not(.nav-backtotop):hover::before, #nav-toc > .site-links > li:hover::before { .site-links > a:not(.nav-backtotop):hover::before, #nav-toc > .site-links > li:hover::before {
content: '☞'; background-image: url(/resources/assets/cursor-test.svg);
color: var(--gold-1); background-size: contain;
background-repeat: no-repeat;
background-position: center;
display: block;
content: '';
width: 1em;
} }
.page-link-list { .page-link-list {
@ -82,33 +102,47 @@
gap: calc(var(--space) / 2); gap: calc(var(--space) / 2);
} }
#sidebar-page-mouse { #user-menu-list {
grid-column: 3; right: 0;
grid-row: pagebody / -1;
display: flex;
flex-direction: column;
gap: calc(var(--space) * 2);
} }
#sidebar-page-touch { .sidebar-page-mouse {
grid-column: 5;
grid-row: topstart;
}
#page-menu {
position: relative;
min-height: 100%;
width: 100%;
}
#page-menu-button {
height: 100%;
text-align: left;
}
#page-menu > * {
padding-left: var(--space);
}
.sidebar-page-touch {
display: none; display: none;
} }
#page { #page-menu-list {
grid-column: 2; flex-direction: column;
grid-row: title / bottomstart ; gap: calc(var(--space) * 4);
display: grid;
grid-template-rows: subgrid;
grid-template-columns: subgrid;
} }
#titleblock { #titleblock {
grid-column: 1; grid-column: 1 / 3;
grid-row: title; grid-row: title;
} }
#mw-content-text { #mw-content-text {
grid-column: 1; grid-column: 1 / 3;
grid-row: pagebody / bottomstart; grid-row: pagebody / bottomstart;
} }
@ -123,7 +157,7 @@
} }
#bottombar { #bottombar {
grid-column: 2 / 3; grid-column: 3 / 4;
grid-row: bottomstart; grid-row: bottomstart;
bottom: 0; bottom: 0;
height: 6em; height: 6em;

View File

@ -1,13 +1,12 @@
:root { :root {
--touch-whitespace: calc(18vw - 132px); --touch-whitespace: 1.2vw;
} }
#grid { #grid {
display: grid; display: grid;
grid-template-columns: 1fr; grid-template-columns: 1fr;
grid-template-rows: auto; grid-template-rows: auto;
padding-left: var(--touch-whitespace); padding: var(--space);
padding-right: var(--touch-whitespace);
} }
p { p {
@ -28,22 +27,30 @@ p {
} }
#topbar { #topbar {
grid-column: 1;
grid-row: 1; grid-row: 1;
grid-template-columns: 1fr 1fr; column-gap: var(--space);
margin-left: var(--space); grid-template-columns: auto minmax(min-content, 1fr) min-content;
margin-right: var(--space); grid-template-rows: 3.6em 3.6em;
row-gap: var(--space);
} }
#top-logo { #top-logo {
grid-column: 1; grid-column: 1;
grid-row: 1;
align-items: flex-start;
} }
#user-menu { #top-logo a {
grid-column: 2; top: var(--space);
left: 50%;
transform: translate(-50%);
} }
#nav-search { #nav-search {
grid-column: 1 / 3; position: sticky;
top: var(--space);
grid-column: 1 / 4;
grid-row: 2; grid-row: 2;
width: 100%; width: 100%;
} }
@ -67,7 +74,6 @@ p {
z-index: 1; z-index: 1;
gap: var(--space); gap: var(--space);
justify-content: center; justify-content: center;
overflow-x: scroll;
overflow-y: hidden; overflow-y: hidden;
padding-top: 1em; padding-top: 1em;
margin-top: -1em; margin-top: -1em;
@ -87,45 +93,46 @@ p {
height: calc(var(--space) * 3); height: calc(var(--space) * 3);
} }
#sidebar-page-touch { .sidebar-page-mouse {
width: 100%;
height: fit-content;
display: grid;
grid-template-columns: 50% 50%;
margin-bottom: calc(var(--space) * 3);
justify-items: center;
}
#sidebar-page-mouse {
display: none; display: none;
} }
.sidebar-page-menu { .sidebar-page-touch {
text-align: center; grid-row: 1;
grid-column: 3;
} }
#page-main { #user-menu {
grid-row: 2; margin-left: auto;
grid-column: 1 / 3;
} }
#page-main .page-link-list { #page-menu {
display: flex; width: fit-content;
gap: var(--space); position: relative;
} }
#page-main .page-link-list li { #page-menu-button {
text-align: center; height: 100%;
width: 100%;
} }
.page-view-details .page-link-list { #user-menu-list {
display: flex; right: 0;
flex-direction: column; }
align-items: center;
#page-menu-list {
grid-row: unset;
right: 0;
margin-top: var(--space);
gap: calc(var(--space) * 3);
padding: var(--space);
background-color: var(--gold-2);
box-shadow: 0 0 2px 1px var(--gold-7), inset 0 0 6px 3px var(--gold-1);
z-index: 1;
} }
.site-links { .site-links {
border-top: 1px solid white; border-top: 1px solid var(--gold-1);
padding-top: calc(var(--space)); padding-top: calc(var(--space));
margin-left: var(--space); margin-left: var(--space);
margin-right: var(--space); margin-right: var(--space);
@ -138,10 +145,6 @@ p {
text-align: center; text-align: center;
} }
.page-link-list {
font-size: .9em;
}
details.page-links { details.page-links {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -149,6 +152,7 @@ details.page-links {
} }
#page { #page {
grid-column: 1;
grid-row: 3 / 5; grid-row: 3 / 5;
display: grid; display: grid;
grid-template-rows: subgrid; grid-template-rows: subgrid;
@ -172,18 +176,5 @@ details.page-links {
.pi-title:first-child { .pi-title:first-child {
display: none; display: none;
} }
#titleblock {
display: flex;
flex-direction: column-reverse;
align-items: center;
margin-left: var(--space);
margin-right: var(--space);
}
#sidebar-nav {
justify-content: space-around;
}
.sidebar-page-menu {
width: max-content;
flex-wrap: wrap;
}
} }

View File

@ -12,7 +12,7 @@
} }
.site-links > a, #nav-toc > .site-links, .nav-show { .site-links > a, #nav-toc > .site-links, .nav-show {
text-shadow: 0 0 2px black; text-shadow: 0 0 2px var(--black);
font-weight: bold; font-weight: bold;
font-size: .9em; font-size: .9em;
font-family: 'Libre Caslon', serif; font-family: 'Libre Caslon', serif;

View File

@ -22,6 +22,7 @@
body { body {
margin: 0; margin: 0;
background-image: linear-gradient(100deg, var(--blue-1), var(--white) 20%, var(--white)70%, var(--blue-1))
} }
:root { :root {
@ -36,6 +37,16 @@ fieldset {
margin-top: calc(var(--space) * 3); margin-top: calc(var(--space) * 3);
} }
#title-views {
display: flex;
gap: var(--space);
align-items: center;
}
#site-icon {
position: absolute;
}
#page a:link { #page a:link {
color: var(--blue-6); color: var(--blue-6);
} }
@ -68,6 +79,7 @@ fieldset {
#firstHeading, .mw-heading h2 { #firstHeading, .mw-heading h2 {
font-family: 'Libre Caslon', serif; font-family: 'Libre Caslon', serif;
text-wrap: balance;
} }
.mw-heading { .mw-heading {
@ -85,18 +97,43 @@ p {
} }
#titleblock { #titleblock {
border-bottom: 3px solid black; border-bottom: 3px solid var(--black);
margin-bottom: calc(var(--space) * 2); // margin-bottom: calc(var(--space) * 2);
display: flex; display: flex;
align-items: end;
justify-content: space-between; justify-content: space-between;
} }
#pagetitle {
display: flex;
// align-items: center;
}
#title-views {
margin-left: auto;
margin-bottom: calc(var(--space) / 2);
}
#versions { #versions {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: var(--space); gap: var(--space);
margin-left: 2vw;
} }
#t-print, #t-upload { #t-print, #t-upload {
display: none; display: none;
} }
// border-style: solid;
// border-image: linear-gradient(150deg, var(--blue-5), white 30%) 1;
// background-image: linear-gradient(150deg, var(--blue-5) 0%, var(--blue-3) 6%, var(--blue-2) 12%, white 30%)
// }
// #page-menu:focus-within {
// border-style: solid;
// border-image: linear-gradient(102deg, var(--blue-5),white 30%) 1;
// background-image: linear-gradient(102deg, var(--blue-5) 0%, var(--blue-3) 6%, var(--blue-2) 12%, white 30%)
// }

View File

@ -1,16 +1,11 @@
#topbar { #topbar {
display: grid; display: grid;
padding-top: var(--space);
row-gap: var(--space);
} }
#top-logo { #top-logo {
display: flex; height: fit-content;
align-items: center; align-self: center;
} width: 100%;
#top-logo a {
width: fit-content;
} }
#top-logo img{ #top-logo img{
@ -32,62 +27,83 @@
} }
#nav-search { #nav-search {
position: relative; height: 100%;
height: fit-content;
justify-self: center; justify-self: center;
} }
#nav-search-bar { #nav-search-bar {
border-radius: var(--space); border-radius: calc(var(--space) / 2);
background-color: var(--blue-1); background-image: linear-gradient(10deg, var(--blue-1), var(--blue-1) 40%, var(--gold-1));
box-shadow: 0 0 2px 1px var(--gold-7); // background-color: var(--blue-2);
border-bottom: 3px solid var(--blue-7); background-color: var(--white);
border: 1px solid var(--black);
border-bottom: 3px solid var(--black);
font-size: calc(var(--space) *2); font-size: calc(var(--space) *2);
padding: var(--space); padding: var(--space);
height: 100%;
} }
#nav-search-bar:focus { #nav-search-bar:focus {
outline: 3px solid var(--blue-7); outline: 3px solid var(--blue-7);
box-shadow: inset 0 0 3px 3px var(--blue-3); box-shadow: inset 0 0 3px 3px var(--blue-3);
background-color: white; background-color: var(--white);
border-bottom: 3px inset var(--blue-7); border-bottom: 3px inset var(--blue-7);
} }
#nav-search-label { #nav-search form {
position: absolute;
left: var(--space);
top: 50%;
transform: translate(0, -50%);
opacity: 0.6;
font-size: 1.2em;
}
#user-menu-button {
font-size: 1em;
height: 100%; height: 100%;
background-color: var(--blue-4);
box-shadow: 0 0 1px 1px var(--gold-3), inset 0 0 6px 2px var(--blue-3);
border: 1px outset var(--gold-1);
border-radius: var(--space);
color: white;
} }
#user-menu-list { #user-menu-button, #page-menu-button {
display: none; border-bottom: 3px solid var(--gold-6);
flex-direction: column; border-width: 0 0 3px 0;
align-items: flex-end; }
position: absolute;
right: 0; #user-menu-button, #user-menu-list, #page-menu-button, #page-menu-list {
background: white; width: fit-content;
padding: 0; font-size: 1em;
overflow: clip;
text-overflow: ellipsis;
padding: var(--space);
background-color: var(--gold-2);
// border-radius: calc(var(--space) / 2 );
// box-shadow: inset 0 0 3px 3px var(--gold-1);
color: var(--gold-7);
} }
#user-menu { #user-menu {
gap: var(--space);
justify-self: right;
position: relative; position: relative;
} }
#user-menu:focus-within #user-menu-list { #user-menu-button {
height: 100%;
}
#page-menu-list, #user-menu-list {
position: absolute;
margin-top: calc(var(--space) / 2);
display: none;
z-index: 1;
border-top: 3px solid var(--gold-6);
border-width: 3px 0 0 0;
}
#page-actions, #page-views, #user-links {
display: flex;
flex-direction: column;
width: max-content;
gap: var(--space);
}
#user-menu:focus-within #user-menu-button, #page-menu:focus-within #page-menu-button {
background-color: var(--gold-3);
box-shadow: inset 0 0 3px 3px var(--gold-4);
}
#user-menu:focus-within #user-menu-list, #page-menu:focus-within #page-menu-list {
display: flex; display: flex;
}
.page-link-list > .mw-list-item a {
color: var(--blue-7);
} }

View File

@ -1,49 +1,29 @@
<div id="page-main" class="sidebar-page-menu"> <button id="page-menu-button">Page Options</button>
<ul class="page-link-list"> <div id="page-menu-list">
<ul id="page-views" class="page-link-list">
{{#data-portlets}} {{#data-portlets}}
{{{data-views.array-items.0.html-item}}}
{{{data-views.array-items.1.html-item}}}
{{#data-associated-pages}}
{{{html-items}}}
{{/data-associated-pages}}
{{#data-views}} {{#data-views}}
{{#array-items.2}} {{#array-items.2}}
{{{html-item}}} {{{html-item}}}
{{/array-items.2}} {{/array-items.2}}
{{/data-views}} {{/data-views}}
{{/data-portlets}} {{/data-portlets}}
</ul>
</div>
<div id="page-views" class="sidebar-page-menu">
<details name="page-menu" class="page-view-details">
<summary class="page-menu-heading">
Page Views
</summary>
<ul class="page-link-list">
{{#data-portlets-sidebar}} {{#data-portlets-sidebar}}
{{#array-portlets-rest.1}} {{#array-portlets-rest.1}}
{{{html-items}}} {{{html-items}}}
{{/array-portlets-rest.1}} {{/array-portlets-rest.1}}
{{/data-portlets-sidebar}} {{/data-portlets-sidebar}}
</ul> </ul>
</details> <ul id="page-actions" class="page-link-list">
</div>
<div id="page-actions" class="sidebar-page-menu">
<details name="page-menu" class="page-view-details">
<summary class="page-menu-heading">
Page Actions
</summary>
<ul class="page-link-list">
{{#data-portlets}} {{#data-portlets}}
{{#data-actions}} {{#data-actions}}
{{{html-items}}} {{{html-items}}}
{{/data-actions}} {{/data-actions}}
{{/data-portlets}} {{/data-portlets}}
<li id="page-action-print" class="mw-list-item"> <li id="page-action-print" class="mw-list-item">
<a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"> <a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p">
Print Print
</a> </a>
</li> </li>
</ul> </ul>
</details>
</div> </div>

View File

@ -6,18 +6,20 @@
<div id="top-logo"> <div id="top-logo">
<a href="https://phialfantasy.wiki"> <a href="https://phialfantasy.wiki">
{{#data-logos}} {{#data-logos}}
<img src="{{{icon}}}" /> <img id="site-icon" src="{{{icon}}}" />
<img id="site-wordmark" src="{{{wordmark.src}}}" />
{{/data-logos}} {{/data-logos}}
</a> </a>
</div> </div>
<div id="nav-search">
{{#data-search-box}} <div id="nav-search">
<form action="{{{form-action}}}"> {{#data-search-box}}
<input id="nav-search-bar" {{{html-input-attributes}}}> <form action="{{{form-action}}}">
<input value="🔍" {{{html-button-go-attributes}}}> <input id="nav-search-bar" {{{html-input-attributes}}}>
</form> <input value="🔍" {{{html-button-go-attributes}}}>
{{/data-search-box}} </form>
</div> {{/data-search-box}}
</div>
<div id="user-menu"> <div id="user-menu">
{{#data-portlets}} {{#data-portlets}}
{{#data-user-menu}} {{#data-user-menu}}
@ -27,18 +29,56 @@
</button> </button>
{{/array-items.0.array-links.0}} {{/array-items.0.array-links.0}}
<div id="user-menu-list"> <div id="user-menu-list">
{{{html-items}}} <ul id="user-links" class="page-link-list">
<a href="/index.php/Special:Upload"> {{{html-items}}}
Upload a File <li id="pt-print" class="mw-list-item">
</a> <a href="/index.php/Special:Upload">
Upload a File
</a>
</li>
</ul>
</div> </div>
{{/data-user-menu}} {{/data-user-menu}}
{{/data-portlets}} {{/data-portlets}}
</div> </div>
<div id="page-menu" class="sidebar-page-mouse">
{{>sidebar-page}}
</div>
<div id="page-menu" class="sidebar-page-touch">
<button id="page-menu-button">Page Options</button>
<div id="page-menu-list">
<ul id="page-actions" class="page-link-list">
{{#data-portlets}}
{{#data-actions}}
{{{html-items}}}
{{/data-actions}}
{{/data-portlets}}
<li id="page-action-print" class="mw-list-item">
<a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p">
Print
</a>
</li>
</ul>
<ul id="page-views" class="page-link-list">
{{#data-portlets}}
{{#data-views}}
{{#array-items.2}}
{{{html-item}}}
{{/array-items.2}}
{{/data-views}}
{{/data-portlets}}
{{#data-portlets-sidebar}}
{{#array-portlets-rest.1}}
{{{html-items}}}
{{/array-portlets-rest.1}}
{{/data-portlets-sidebar}}
</ul>
</div>
</div>
</header> </header>
<div id="sidebar-nav"> <div id="sidebar-nav">
<nav id="nav-main" class="nav-menu"> <nav id="nav-main" class="nav-menu">
<button class="nav-show"> <button class="nav-show">
Wiki Pages Wiki Pages
@ -110,27 +150,32 @@
</div> </div>
<div id="sidebar-page-mouse">{{>sidebar-page}}</div>
<div id="sidebar-page-touch">
<button class="page-show">Editor Pages</button>
{{>sidebar-page}}</div>
<main id="page"> <main id="page">
<div id="titleblock"> <div id="titleblock">
<div id="pagetitle"> <div id="pagetitle">
<div id="titlebg"></div> <div id="titlebg"></div>
{{{html-title-heading}}} {{{html-title-heading}}}
<div id="versions">
{{#array-indicators}}
<a href="?{{{id}}}">
<div id="{{{id}}}">{{{html}}}</div>
</a>
{{/array-indicators}}
</div>
</div> </div>
<div id="versions">
{{#array-indicators}} <ul id="title-views">
<a href="?{{{id}}}"> {{#data-portlets}}
<div id="{{{id}}}">{{{html}}}</div> {{#data-associated-pages}}
</a> {{{html-items}}}
{{/array-indicators}} {{/data-associated-pages}}
</div> {{{data-views.array-items.0.html-item}}}
{{{data-views.array-items.1.html-item}}}
{{/data-portlets}}
</ul>
</div> </div>
{{{html-body-content}}} {{{html-body-content}}}
</main> </main>