feat(theme): rewrite the CSS with nested selectors

This commit is contained in:
Bruno Carlin 2025-07-02 23:58:44 +02:00
parent 394d1556f7
commit 0b8e85342a
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 8E254EA0FFEB9B6D
3 changed files with 223 additions and 213 deletions

View file

@ -92,14 +92,19 @@ header nav [role="link"]:is([aria-current]:not([aria-current="false"]),:hover,:a
--pico-text-decoration: none;
}
.container {
article :where(a:not([role="button"])) {
--pico-text-decoration: none;
}
body > :is(main, footer) {
max-width: 40em;
margin-left: auto;
margin-right: auto;
}
article :where(a:not([role="button"])) {
--pico-text-decoration: none;
@media (width >= 1024px) {
margin-right: 0;
margin-left: 18em;
}
}
/*
@ -115,10 +120,19 @@ article :where(a:not([role="button"])) {
backdrop-filter: blur(3px);
font-family: var(--pico-font-family-sans-serif);
font-weight: bold;
@media (width >= 1024px) {
display: none;
}
img {
height: 2em;
}
}
.mobile-header img {
height: 2em;
#menu-close {
float: right;
padding: 0 1.5em;
}
#menu-close, #menu-close:hover, #menu-toggle {
@ -126,13 +140,16 @@ article :where(a:not([role="button"])) {
background-color: inherit;
border: none;
text-decoration: none;
@media (width >= 1024px) {
display: none;
}
}
body {
background-color: var(--pico-background-color);
}
body > header {
& > header {
width: 100vw;
text-align: center;
height: 100vh;
@ -143,69 +160,8 @@ body > header {
z-index: 100;
transition: left 0.5s;
overflow: hidden auto;
}
body > header.active {
left: 0;
}
body > header nav, body > header nav ul {
flex-direction: column;
}
body > header .u-logo {
width: 5em;
}
body > header .title {
font-size: 1.5rem;
font-weight: bold;
font-family: var(--pico-font-family-sans-serif);
margin-top: 1em;
}
body > header nav {
font-size: 1rem;
font-family: var(--pico-font-family-sans-serif);
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
body > header nav li {
padding: 0;
padding: calc( var(--pico-nav-element-spacing-vertical) / 4)
calc( var(--pico-nav-element-spacing-horizontal) / 4);
}
body > header a {
color: var(--pico-color);
padding: 0;
}
body > header > a {
float: right;
padding: 0 1.5em;
}
.menu-primary {
font-weight: bold;
}
body > footer p {
font-size: 0.7em;
text-align: center;
}
@media (width >= 1024px) {
.mobile-header, #menu-close {
display: none;
}
body > header {
@media (width >= 1024px) {
position: sticky;
top: 0;
left: 0;
@ -213,11 +169,56 @@ body > footer p {
float: left;
}
.container {
margin-right: 0;
margin-left: 18em;
.u-logo {
width: 5em;
}
.title {
font-size: 1.5rem;
font-weight: bold;
font-family: var(--pico-font-family-sans-serif);
margin-top: 1em;
}
a {
color: var(--pico-color);
padding: 0;
.menu-primary & {
font-weight: bold;
}
}
nav {
font-size: 1rem;
font-family: var(--pico-font-family-sans-serif);
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
ul {
flex-direction: column;
}
li {
padding: 0;
padding: calc( var(--pico-nav-element-spacing-vertical) / 4)
calc( var(--pico-nav-element-spacing-horizontal) / 4);
}
}
}
& > footer{
p {
font-size: 0.7em;
text-align: center;
}
}
}
@media (width >= 1024px) {
.metadata p {
display: inline;
}
@ -228,95 +229,29 @@ body > footer p {
* Content Styling
*/
.translations {
main {
.translations {
text-align: end;
margin-bottom: 0.3em;
}
.translations a {
a {
text-decoration: none;
}
}
}
main > article {
& > article {
text-align: justify;
}
main > article > header {
& > header {
margin-bottom: calc(2 * var(--pico-block-spacing-vertical));
}
ul.tags, ul.tags li {
list-style-type: none;
display: inline;
padding-left: 0;
margin-bottom: 0;
}
ul > li {
list-style-type: disc;
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--pico-font-family-sans-serif);
text-align: left;
}
h1 {
font-size: 1.7rem;
}
h2 {
font-size: 1.3rem;
}
h2::before {
content: "## ";
color: var(--markup-color);
}
h3 {
font-size: 1.2rem;
}
h3::before {
content: "### ";
color: var(--markup-color);
}
h4 {
font-size: 1.1rem;
}
h4::before {
content: "#### ";
color: var(--markup-color);
}
h5 {
font-size: 1rem;
}
h5::before {
content: "##### ";
color: var(--markup-color);
}
h6 {
font-size: 1rem;
}
h6::before {
content: "###### ";
color: var(--markup-color);
}
article header h1, article header p {
h1, p {
margin-bottom: calc(0.1 * var(--pico-typography-spacing-vertical));
margin-top: 0.3em;
}
}
article header .category a {
.category a {
font-family: var(--pico-font-family-sans-serif);
font-weight: 700;
line-height: var(--pico-line-height);
@ -324,24 +259,83 @@ article header .category a {
text-decoration: none;
font-size: 1rem;
margin-bottom: 0.5em;
}
}
}
h2 a, h3 a, h4 a, h5 a, h6 a {
ul > li {
list-style-type: disc;
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--pico-font-family-sans-serif);
text-align: left;
a {
color: var(--pico-muted-color);
text-decoration: none;
margin-left: 0.4rem;
font-size: 1rem;
}
}
}
pre {
h1 {
font-size: 1.7rem;
}
h2 {
font-size: 1.3rem;
&::before {
content: "## ";
color: var(--markup-color);
}
}
h3 {
font-size: 1.2rem;
&::before {
content: "### ";
color: var(--markup-color);
}
}
h4 {
font-size: 1.1rem;
&::before {
content: "#### ";
color: var(--markup-color);
}
}
h5 {
font-size: 1rem;
&::before {
content: "##### ";
color: var(--markup-color);
}
}
h6 {
font-size: 1rem;
&::before {
content: "###### ";
color: var(--markup-color);
}
}
pre {
margin-bottom: calc(1.5 * var(--pico-spacing));
}
}
code, kbd, pre {
code, kbd, pre {
font-size: 0.8em;
}
}
a[rel="external"]::after {
a[rel="external"]::after {
content: "\ecae";
font-size: 0.7em;
margin-left: 0.2em;
@ -349,14 +343,17 @@ a[rel="external"]::after {
font-style: normal;
color: var(--pico-muted-color);
text-decoration: none;
}
}
figure {
figure {
max-width: 50%;
text-align: center;
margin: var(--pico-block-spacing-vertical) auto;
}
}
}
/*
* Admonitions
*/
@ -374,16 +371,20 @@ figure {
* Post lists
*/
.h-feed article:not(:last-child) {
.h-feed {
article{
&:not(:last-child) {
border-bottom: var(--pico-border-width) solid var(--pico-card-border-color);
margin-bottom: 0;
}
}
.h-feed article p {
p {
margin-bottom: calc(0.2 * var(--pico-typography-spacing-vertical));
}
}
.h-feed article .p-summary {
.p-summary {
font-size: 0.9em;
font-style: italic;
}
}
}

View file

@ -30,10 +30,12 @@
</li>
</ul>
</nav>
<header id="menu" class="h-card">
{{ partial "header.html" . }}
</header>
<main class="container">
<main>
{{- if .IsTranslated }}
{{- range .Translations }}
<div class="translations">
@ -47,7 +49,8 @@
{{ block "main" . }}{{ end }}
</main>
<footer class="container">
<footer>
{{ partial "footer.html" . }}
</footer>
</body>

6
stylelint.config.js Normal file
View file

@ -0,0 +1,6 @@
/** @type {import('stylelint').Config} */
export default {
rules: {
"no-descending-specificity": false
}
};