No CSS nesting

This commit is contained in:
Joe Carstairs
2024-07-01 13:59:26 +01:00
parent 682378938d
commit 534074e66a
4 changed files with 152 additions and 165 deletions

View File

@@ -80,6 +80,7 @@ small {
body { body {
margin-inline: var(--spacing-block-lg); margin-inline: var(--spacing-block-lg);
margin-block-end: var(--spacing-block-xl); margin-block-end: var(--spacing-block-xl);
}
:is(h1, h2, h3, h4, h5, h6) { :is(h1, h2, h3, h4, h5, h6) {
text-align: center; text-align: center;
@@ -88,7 +89,6 @@ body {
img { img {
margin-inline: auto; margin-inline: auto;
} }
}
@media (min-width: 36rem) { @media (min-width: 36rem) {
body { body {
@@ -102,6 +102,7 @@ body {
margin-inline-end: 6rem; margin-inline-end: 6rem;
column-gap: var(--spacing-block-sm); column-gap: var(--spacing-block-sm);
max-width: calc(6rem + var(--spacing-block-sm) + 30rem); max-width: calc(6rem + var(--spacing-block-sm) + 30rem);
}
:is(main, article, nav) { :is(main, article, nav) {
display: grid; display: grid;
@@ -117,7 +118,6 @@ body {
text-align: start; text-align: start;
} }
} }
}
/** Headings */ /** Headings */
@@ -144,72 +144,69 @@ a:is(:link, :visited) {
color: var(--colour-hyperlink); color: var(--colour-hyperlink);
text-decoration: underline; text-decoration: underline;
display: inline; display: inline;
:hover {
text-decoration: wavy;
} }
a:hover {
text-decoration: wavy;
} }
/** Definition lists */ /** Definition lists */
dl { dl {
margin-block-start: var(--spacing-block-md); margin-block-start: var(--spacing-block-md);
dt { dl dt {
font-weight: bold; font-weight: bold;
}
dd + & { dl dd + dt {
margin-block-start: var(--spacing-block-md); margin-block-start: var(--spacing-block-md);
} }
}
}
/** Navigation bar */ /** Navigation bar */
nav { nav {
margin-block: var(--spacing-block-sm); margin-block: var(--spacing-block-sm);
}
ul { nav ul {
grid-column: media-start / content-end; grid-column: media-start / content-end;
display: flex; display: flex;
justify-content: center; justify-content: center;
gap: var(--spacing-inline-md); gap: var(--spacing-inline-md);
list-style: none; list-style: none;
} }
}
@media (min-width: 36rem) { @media (min-width: 36rem) {
nav { nav {
display: grid; display: grid;
grid-template-columns: subgrid; grid-template-columns: subgrid;
ul {
justify-content: end;
} }
nav ul {
justify-content: end;
} }
} }
/** Blog feed */ /** Blog feed */
.h-feed { .h-feed ul {
ul {
list-style: none; list-style: none;
} }
}
/** Block quotes */ /** Block quotes */
blockquote { blockquote {
padding-inline-start: var(--spacing-inline-lg); padding-inline-start: var(--spacing-inline-lg);
border-inline-start: 2px solid var(--colour-primary-fg); border-inline-start: 2px solid var(--colour-primary-fg);
font-style: italic; font-style: italic;
}
footer { blockquote footer {
font-style: initial; font-style: initial;
} }
:is(em, i) { blockquote :is(em, i) {
font-style: normal; font-style: normal;
} }
}
/** Small caps */ /** Small caps */
.small-caps { .small-caps {

View File

@@ -2,15 +2,16 @@ div:has(img) {
width: 6rem; width: 6rem;
height: 6rem; height: 6rem;
margin-inline: auto; margin-inline: auto;
}
img { div img {
width: 6rem; width: 6rem;
height: 6rem; height: 6rem;
border-radius: 1rem; border-radius: 1rem;
filter: contrast(1.25); filter: contrast(1.25);
} }
&::after { div:has(img)::after {
/* Colour overlay */ /* Colour overlay */
background-color: var(--colour-primary-80); background-color: var(--colour-primary-80);
opacity: 0.3; opacity: 0.3;
@@ -28,65 +29,57 @@ div:has(img) {
/* A content value is needed to get the ::after to render */ /* A content value is needed to get the ::after to render */
content: ''; content: '';
} }
}
header { header {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
text-align: center; text-align: center;
border-block-end: 1px solid var(--colour-primary-fg);
}
h1 { header h1 {
grid-column: 1 / 3; grid-column: 1 / 3;
text-align: center; text-align: center;
} }
border-block-end: 1px solid var(--colour-primary-fg); .technical-skills h3 {
}
.technical-skills {
h3 {
text-align: start; text-align: start;
} }
ul { .technical-skills ul {
color: var(--colour-primary-fg-accent); color: var(--colour-primary-fg-accent);
margin-inline-start: var(--spacing-inline-md); margin-inline-start: var(--spacing-inline-md);
} }
@media (min-width: 46rem) { @media (min-width: 46rem) {
section { .technical-skills section {
display: flex; display: flex;
gap: var(--spacing-inline-sm); gap: var(--spacing-inline-sm);
align-items: baseline; align-items: baseline;
}
h3 { .technical-skills section h3::after {
&::after {
content: '/'; content: '/';
margin-inline: var(--spacing-inline-sm); margin-inline: var(--spacing-inline-sm);
} }
}
ul { .technical-skills section ul {
display: flex; display: flex;
gap: var(--spacing-inline-sm); gap: var(--spacing-inline-sm);
list-style: none; list-style: none;
margin-inline-start: 0; margin-inline-start: 0;
}
li + li::before { .technical-skills section ul li + li::before {
content: '•'; content: '•';
margin-inline-end: var(--spacing-inline-sm); margin-inline-end: var(--spacing-inline-sm);
} }
} }
}
}
}
:is(.experience, .passions) { :is(.experience, .passions) :is(ol, ul) {
:is(ol, ul) {
list-style: none; list-style: none;
}
li { :is(.experience, .passions) :is(ol, ul) li {
margin-block-start: var(--spacing-block-sm); margin-block-start: var(--spacing-block-sm);
} }
}
}

View File

@@ -1,10 +1,8 @@
.h-feed {
/* Assumes there is at most one level of subheading for sub-dividing entries */ /* Assumes there is at most one level of subheading for sub-dividing entries */
:is(h2, h3, h4, h5, h6) { .h-feed :is(h2, h3, h4, h5, h6) {
margin-block-start: var(--spacing-block-md); margin-block-start: var(--spacing-block-md);
} }
.h-entry { .h-feed .h-entry {
margin-block-start: var(--spacing-block-sm); margin-block-start: var(--spacing-block-sm);
} }
}

View File

@@ -1,17 +1,17 @@
.h-card { .h-card div:has(img) {
div:has(img) {
width: 6rem; width: 6rem;
height: 6rem; height: 6rem;
margin-inline: auto; margin-inline: auto;
}
img { .h-card img {
width: 6rem; width: 6rem;
height: 6rem; height: 6rem;
border-radius: 1rem; border-radius: 1rem;
filter: contrast(1.25); filter: contrast(1.25);
} }
&::after { .h-card img::after {
/* Colour overlay */ /* Colour overlay */
background-color: var(--colour-primary-80); background-color: var(--colour-primary-80);
opacity: 0.3; opacity: 0.3;
@@ -29,8 +29,7 @@
/* A content value is needed to get the ::after to render */ /* A content value is needed to get the ::after to render */
content: ''; content: '';
} }
}
}
@media (min-width: 36rem) { @media (min-width: 36rem) {
.h-card { .h-card {
@@ -41,13 +40,14 @@
grid-template-areas: grid-template-areas:
"empty heading" "empty heading"
"photo text"; "photo text";
}
div:has(img) { .h-card div:has(img) {
grid-area: photo; grid-area: photo;
margin-block-start: var(--spacing-block-sm); margin-block-start: var(--spacing-block-sm);
} }
header { .h-card header {
grid-area: heading; grid-area: heading;
} }
@@ -55,4 +55,3 @@
grid-area: text; grid-area: text;
} }
} }
}