feat: spruce up design

This commit is contained in:
Cory Dransfeldt 2024-04-28 19:06:48 -07:00
parent 2614dff452
commit 94e28067f9
No known key found for this signature in database
51 changed files with 480 additions and 202 deletions

View file

@ -1,8 +1,9 @@
body,
html {
color: var(--text-color);
font-family: var(--font-sans);
font-family: var(--font-mono);
font-size: var(--font-size-base);
letter-spacing: -.05rem;
line-height: var(--line-height-base);
background: var(--background-color);
accent-color: var(--accent-color)
@ -37,7 +38,6 @@ body::-webkit-scrollbar {
::-webkit-scrollbar-thumb {
background: var(--accent-color);
border-radius: var(--rounded-full);
}
::-webkit-scrollbar-track {
@ -46,15 +46,24 @@ body::-webkit-scrollbar {
::-webkit-scrollbar-button {
background-color: var(--accent-color);
border-radius: var(--rounded);
}
p,
blockquote {
line-height: var(--line-height-lg);
margin: var(--sizing-base) 0;
}
p {
margin: var(--sizing-base) 0;
& a {
text-decoration: underline;
text-decoration-line: underline;
text-decoration-style: dashed;
text-underline-offset: var(--sizing-xs);
}
}
blockquote {
font-size: var(--font-size-lg);
padding-left: var(--sizing-lg);
@ -82,6 +91,14 @@ a.linked-header {
sup.footnote-ref {
line-height: var(--line-height-xs);
& a {
text-decoration: none;
}
}
.footnote-item a {
text-decoration: none;
}
strong,
@ -139,6 +156,37 @@ h4 { font-size: var(--font-size-lg) }
h5 { font-size: var(--font-size-base) }
h6 { font-size: var(--font-size-sm) }
.section-header-wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.section-header {
margin: var(--sizing-3xl) 0 var(--sizing-lg);
&.posts {
margin: 0 0 var(--sizing-lg);
}
}
.default-wrapper > .section-header:first-of-type {
margin-top: 0;
}
.section-header-buttons {
margin: 0 0 var(--sizing-lg);
& > button {
margin-bottom: var(--sizing-sm);
&:last-of-type {
margin-right: 0;
}
}
}
/* dividers */
hr {
height: 1px;
background-color: var(--gray-light);
@ -157,7 +205,6 @@ table {
max-width: fit-content;
margin: 0 auto;
white-space: nowrap;
border-radius: var(--rounded);
border: 1px solid var(--gray-light);
}
@ -194,25 +241,31 @@ th {
width: 100%;
padding-top: var(--sizing-3xl);
display: flex;
flex-direction: column;
flex-direction: row;
align-items: center;
justify-content: space-between;
& h1 {
line-height: 1.25;
margin: 0;
padding-bottom: var(--sizing-md);
padding-bottom: 0;
font-size: var(--font-size-3xl);
font-weight: var(--font-weight-extrabold);
line-height: var(--line-height-3xl);
& a {
text-decoration: none;
}
}
}
/* nav */
nav.menu-primary {
gap: var(--sizing-md);
& a,
& span {
height: var(--sizing-xl);
}
a svg,
button svg {
transform: rotate(0deg);
transition-property: transform;
transition-timing-function: var(--transition-ease-in-out);
transition-duration: var(--transition-duration-default);
}
:is(a:hover, a:active, a:focus) svg,
@ -220,7 +273,27 @@ a svg:hover,
a svg:active,
a svg:focus,
button:hover svg,
button svg:hover,
button svg:hover {
transform: rotate(8deg);
}
a svg:hover,
a svg:active,
a svg:focus {
stroke: var(--accent-color-hover);
}
a.view-all svg {
stroke: var(--accent-color);
}
a.view-all:hover svg,
a.view-all:active svg,
a.view-all:focus svg {
transform: rotate(0deg);
stroke: var(--accent-color-hover);
}
.icon--bold > svg {
stroke-width: var(--stroke-width-bold);
}
@ -236,13 +309,6 @@ nav ul li .active svg {
stroke: var(--accent-color);
}
.active:hover svg,
.active svg:hover,
nav ul li .active:hover svg,
nav ul li .active svg:hover {
stroke-width: var(--stroke-width-default);
}
/* social icons */
.at svg { stroke: var(--brand-hey) !important; }
.brand-github svg { stroke: var(--brand-github) !important; }
@ -256,9 +322,32 @@ nav ul li .active svg:hover {
.heart-handshake svg { stroke: var(--webrings) !important; }
.rss svg { stroke: var(--brand-rss) !important; }
.coffee:hover,
.coffee:active,
.coffee:focus {
color: var(--brand-buy-me-a-coffee) !important;
}
.brand-mastodon:hover,
.brand-mastodon:active,
.brand-mastodon:focus {
color: var(--brand-mastodon) !important;
}
.rss:hover,
.rss:active,
.rss:focus {
color: var(--brand-rss) !important;
}
/* layout */
.default-wrapper {
padding-top: var(--sizing-2xl);
& .posts-wrapper article:last-of-type,
& .article-widget-wrapper:last-of-type {
border-bottom: none;
}
}
.main-wrapper {
@ -285,6 +374,15 @@ article {
margin-top: 0;
}
.article-widget-wrapper {
border-bottom: 1px solid var(--gray-light);
margin-bottom: var(--sizing-base);
& article {
border-bottom: none;
}
}
footer nav:first-child {
gap: var(--sizing-sm);
margin-top: var(--sizing-3xl);
@ -331,7 +429,6 @@ code {
/* articles */
article {
& h2 {
color: var(--text-color);
line-height: var(--line-height-2xl);
margin: 0 0 var(--sizing-lg);
transition-property: color;
@ -398,6 +495,10 @@ svg {
vertical-align: middle;
}
.icon-light > svg {
stroke: var(--gray-dark) !important;
}
/* lists */
ul, ol {
list-style-position: inside;
@ -485,22 +586,32 @@ li {
flex-wrap: wrap;
}
.gap-xs { gap: var(--sizing-xs) }
.gap-sm { gap: var(--sizing-sm) }
.gap-md { gap: var(--sizing-md) }
.gap-base { gap: var(--sizing-base) }
.gap-xl { gap: var(--sizing-xl) }
.gap-2xl { gap: var(--sizing-2xl) }
.gap-3xl { gap: var(--sizing-3xl) }
/* screens: md */
@media screen and (min-width: 768px) {
.main-title {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.main-title h1 {
padding-bottom: 0;
}
main {
max-width: 768px;
}
.section-header-wrapper {
flex-direction: row;
}
.section-header-buttons {
margin: var(--sizing-3xl) 0 var(--sizing-lg);
& > button {
margin-bottom: 0;
}
}
article {
& h2 {
margin: 0 0 var(--sizing-xs);

View file

@ -2,6 +2,7 @@
display: grid;
gap: var(--sizing-md);
grid-template-columns: repeat(3,minmax(0,1fr));
margin-top: var(--sizing-2xl);
& > * {
display: flex;

View file

@ -19,7 +19,7 @@
vertical-align: middle;
height: var(--sizing-lg);
width: var(--sizing-lg);
margin-right: var(--sizing-xs);
margin-right: var(--sizing-sm);
}
}

View file

@ -7,14 +7,13 @@ input[type="text"],
input[type="email"],
input[type="search"],
textarea {
font-family: var(--font-sans);
font-family: var(--font-mono);
color: var(--text-color);
background-color: var(--background-color);
border: 1px solid var(--accent-color);
padding: var(--sizing-sm);
font-size: var(--font-size-base);
width: 100%;
border-radius: var(--rounded);
outline: none;
margin-bottom: var(--sizing-base);
font-weight: var(--font-weight-base);

View file

@ -3,32 +3,6 @@
--grid-vertical: repeat(3,minmax(0,1fr));
}
.now-header {
margin: var(--sizing-3xl) 0 var(--sizing-lg);
}
.default-wrapper > .now-header:first-of-type {
margin-top: 0;
}
.now-header-buttons {
margin: 0 0 var(--sizing-lg);
& > button {
margin-bottom: var(--sizing-sm);
&:last-of-type {
margin-right: 0;
}
}
}
.now-header-wrapper {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.media-grid {
display: grid;
gap: var(--sizing-sm);
@ -60,7 +34,6 @@
content: '';
top: 0;
left: 1px;
border-radius: calc(var(--sizing-xs) * .85);
box-shadow: inset 0 -70px 50px -40px #000;
width: calc(100% - 2px);
height: calc(100% - 1px);
@ -103,7 +76,6 @@
& img {
border: 1px solid var(--accent-color);
border-radius: var(--rounded);
transition-property: border-color;
transition-timing-function: var(--transition-ease-in-out);
transition-duration: 300ms;
@ -115,16 +87,4 @@
--grid-square: repeat(4,minmax(0,1fr));
--grid-vertical: repeat(6,minmax(0,1fr));
}
.now-header-wrapper {
flex-direction: row;
}
.now-header-buttons {
margin: var(--sizing-3xl) 0 var(--sizing-lg);
& > button {
margin-bottom: 0;
}
}
}

View file

@ -0,0 +1,124 @@
.menu-primary {
display: flex;
flex-direction: row;
list-style-type: none;
margin: 0;
padding: 0;
gap: var(--sizing-md);
& > li {
overflow: hidden;
margin: 0;
& .icon > svg {
display: block;
}
& .icon > span {
display: none;
}
}
}
theme-toggle {
margin-left: var(--sizing-md)
}
.menu-button-container {
display: none;
}
#menu-toggle {
display: none;
}
.menu-button-container .menu-open,
.menu-button-container .menu-closed {
cursor: pointer;
}
.menu-button-container svg {
transform: rotate(0deg);
transition-property: transform;
transition-timing-function: var(--transition-ease-in-out);
transition-duration: var(--transition-duration-default);
}
.menu-button-container svg:hover,
.menu-button-container svg:active,
.menu-button-container svg:focus {
stroke: var(--accent-color-hover);
transform: rotate(8deg);
}
#menu-toggle:checked + .menu-button-container .menu-closed {
display: none;
}
#menu-toggle:checked + .menu-button-container .menu-open {
display: block;
}
#menu-toggle:not(:checked) + .menu-button-container .menu-closed {
display: block;
}
#menu-toggle:not(:checked) + .menu-button-container .menu-open {
display: none;
}
@media (max-width: 768px) {
.menu-primary {
position: absolute;
top: 0;
left: 0;
margin-top: calc(var(--sizing-3xl) * 2.25);
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
gap: 0;
& > li {
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: var(--sizing-sm) 0;
width: 100%;
color: var(--text-color);
background: var(--background-color);
& .icon > svg {
display: none;
}
& .icon > span {
display: inline;
}
}
}
#menu-toggle ~ .menu-primary li {
height: 0;
margin: 0;
padding: 0;
border: 0;
}
#menu-toggle:checked ~ .menu-primary li {
border-bottom: 1px solid var(--gray-light);
height: var(--sizing-3xl);
padding: var(--sizing-sm);
&:first-child {
border-top: 1px solid var(--gray-light);
}
}
.menu-button-container {
display: unset;
width: var(--sizing-svg-base);
height: var(--sizing-svg-base);
}
}

View file

@ -13,7 +13,6 @@
& img {
border: 1px solid var(--accent-color);
border-radius: var(--rounded);
}
& img,

View file

@ -16,6 +16,14 @@
}
}
& :is(a:hover, a:active, a:focus) svg,
& a svg:hover,
& a svg:active,
& a svg:focus {
transform: rotate(0deg);
stroke: var(--accent-color-hover);
}
& span.disabled svg {
cursor: not-allowed;
stroke: color-mix(in srgb, var(--text-color), transparent 50%);

View file

@ -1,3 +1,9 @@
theme-toggle {
width: var(--sizing-svg-base);
height: var(--sizing-svg-base);
display: flex;
}
.theme-toggle {
background: transparent;
padding: 0;
@ -6,11 +12,6 @@
cursor: pointer;
}
&:hover,
& svg:hover {
stroke-width: var(--stroke-width-bold);
}
& > .light svg { stroke: var(--sun) !important; }
& > .dark svg { stroke: var(--moon) !important; }

View file

@ -1,13 +1,5 @@
@font-face {
font-family: Poppins;
src: url('/assets/fonts/Poppins-Bold.min.woff2') format("woff2");
font-weight: 700;
font-display: optional
}
@font-face {
font-family: Poppins;
src: url('/assets/fonts/Poppins-Regular.min.woff2') format("woff2");
font-weight: 400;
font-family: MonoLisa;
src: url('/assets/fonts/MonoLisa.min.woff2') format("woff2");
font-display: optional
}

View file

@ -12,6 +12,7 @@
--blue-900: #1e478a;
--blue-950: #172e54;
--gray-lightest: #fafafa;
--gray-50: #f6f7f8;
--gray-100: #eaecef;
--gray-200: #d9dee4;
@ -23,6 +24,7 @@
--gray-800: #5a6173;
--gray-900: #4b515d;
--gray-950: #30333b;
--gray-darkest: #191919;
--white: #fff;
--black: #000;
@ -32,8 +34,8 @@
--gray-dark: var(--gray-700);
/* base theme */
--color-lightest: var(--white);
--color-darkest: var(--black);
--color-lightest: var(--gray-lightest);
--color-darkest: var(--gray-darkest);
--text-color: var(--color-darkest);
--background-color: var(--color-lightest);
--text-color-inverted: var(--color-lightest);
@ -57,21 +59,20 @@
--sun: #ffa700;
/* fonts */
--font-sans: "Poppins", -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
--font-mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, ui-monospace, monospace;
--font-mono: MonoLisa, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, ui-monospace, monospace;
/* text */
--font-size-xs: .75rem;
--line-height-xs: 1rem;
--font-size-xs: .725rem;
--line-height-xs: 1.225rem;
--font-size-sm: .875rem;
--line-height-sm: 1.25rem;
--font-size-sm: .825rem;
--line-height-sm: 1.325rem;
--font-size-base: 1rem;
--line-height-base: 1.5rem;
--font-size-base: .95rem;
--line-height-base: 1.45rem;
--font-size-lg: 1.125rem;
--line-height-lg: 1.75rem;
--line-height-lg: 1.5rem;
--font-size-xl: 1.25rem;
--line-height-xl: 1.75rem;
@ -79,21 +80,24 @@
--font-size-2xl: 1.5rem;
--line-height-2xl: 2rem;
--font-size-3xl: 1.875rem;
--font-size-3xl: 1.7rem;
--line-height-3xl: 2.25rem;
--font-weight-base: 400;
--font-weight-bold: 700;
--font-weight-bold: 600;
--font-weight-extrabold: 800;
/* spacing */
--sizing-xs: .25rem;
--sizing-sm: .5rem;
--sizing-md: .75rem;
--sizing-lg: 1rem;
--sizing-base: 1.25rem;
--sizing-xl: 1.5rem;
--sizing-2xl: 1.75rem;
--sizing-3xl: 2rem;
--sizing-base: 1.5rem;
--sizing-xl: 1.75rem;
--sizing-2xl: 2rem;
--sizing-3xl: 2.25rem;
--sizing-svg-base: 24px;
/* radii */
--rounded-none: 0;

View file

@ -20,6 +20,7 @@
@import url('./pages/books.css') layer(page);
@import url('./pages/blogroll.css') layer(page);
@import url('./pages/contact.css') layer(page);
@import url('./pages/links.css') layer(page);
@import url('./pages/now.css') layer(page);
@import url('./pages/post.css') layer(page);
@import url('./pages/webrings.css') layer(page);
@ -33,6 +34,7 @@
@import url('./components/link-peek.css') layer(components);
@import url('./components/mastodon-post.css') layer(components);
@import url('./components/media-grid.css') layer(components);
@import url('./components/menu.css') layer(components);
@import url('./components/paginator.css') layer(components);
@import url('./components/post-graph.css') layer(components);
@import url('./components/progress-bar.css') layer(components);

View file

@ -6,10 +6,6 @@
height: calc(var(--sizing-3xl) * 5);
resize: none;
}
& .column.description p:first-child {
margin-top: 0;
}
}
.contact-success-header {
@ -28,4 +24,8 @@
padding-right: var(--sizing-xl);
}
}
form {
margin-top: var(--sizing-base);
}
}

View file

@ -0,0 +1,21 @@
.link-grid {
display: grid;
gap: var(--sizing-sm);
grid-template-columns: repeat(1,minmax(0,1fr));
margin-bottom: var(--sizing-base);
& .link {
border: 1px solid var(--gray-light);
padding: var(--sizing-xs) var(--sizing-sm) 0;
& button {
margin-right: var(--sizing-xs);
}
}
}
@media screen and (min-width: 768px) {
.link-grid {
grid-template-columns: repeat(2,minmax(0,1fr));
}
}

View file

@ -3,7 +3,7 @@
padding-left: var(--sizing-base);
& p {
margin: var(--sizing-xs) 0;
margin: var(--sizing-sm) 0;
& > svg {
display: inline;