Add webmention styles and share buttons

- Created a new SCSS file for webmention styles to enhance the appearance of comments and reactions.
- Added HTML partial for share buttons including Twitter, Facebook, LinkedIn, Reddit, and WhatsApp.
- Updated the main SCSS file to include webmention styles and removed the old CSS file for webmentions.
- Updated asset integrity for the compiled CSS file.
This commit is contained in:
Fundor333
2025-06-30 00:34:39 +02:00
parent d903865974
commit 2bccadf38c
11 changed files with 539 additions and 304 deletions

View File

@@ -1,234 +1,6 @@
:root { @import "root";
--blockquote-border-size: 4px; @import "pride";
--blockquote-background-color: rgb(248 248 248); @import "comments";
@import "generic";
--heading-border-size: 4px; @import "webmention";
@import "social_media_share";
--link-background-color: 189, 195, 199;
--link-background-opacity: 0.5;
--link-background-opacity-hover: 0.7;
--pre-background-color: #272822;
--pre-text-color: #f8f8f2;
--code-background-color: rgba(0, 0, 0, 0.12);
--code-text-color: #808080;
--table-border-color: #dadada;
--tr-even-background-color: #efefee;
@media (prefers-color-scheme: dark) {
--code-background-color: #272822;
--code-text-color: rgba(255, 255, 255, 0.9);
--table-border-color: #717171;
--tr-even-background-color: #545454;
--blockquote-background-color: rgb(75 75 75);
}
}
.author {
margin: 0;
}
.center-img {
display: flex;
justify-content: center;
width: 80%;
}
.menu {
.trigger {
float: left;
display: flex;
align-items: center;
}
}
@media screen and (max-width: 768px) {
.menu {
.menu-icon {
position: relative;
}
}
}
@keyframes enterIn {
0% {
opacity: 0;
}
100% {
opacity: 100;
}
}
@media only screen and (min-width: 768px) {
#pridecodes-code-corner-svg {
width: 150px;
}
}
@media only screen and (max-width: 767px) {
#pridecodes-code-corner-svg {
width: 75px;
}
}
#pridecodes-code-corner-svg {
animation: enterIn 2s;
transition: all 0.2s ease-in-out;
&:hover {
transform: scale(1.1);
transform-origin: left top;
}
}
small,
aside p {
font-size: smaller;
opacity: 0.9;
}
section#comments {
#comments-wrapper {
margin: 1.5em 0;
padding: 0 var(--card-padding);
}
.comment {
display: grid;
column-gap: 1rem;
grid-template-areas:
"avatar name"
"avatar time"
"avatar post"
"...... interactions";
grid-template-columns: min-content;
justify-items: start;
margin: 0em auto 0em -1em;
padding: 0.5em;
&.comment-reply {
margin: 0em auto 0em 1em;
}
.avatar-link {
grid-area: avatar;
height: 4rem;
position: relative;
width: 4rem;
.avatar {
height: 100%;
width: 100%;
border-radius: 20%;
}
&.op::after {
background-color: var(--accent-color);
border-radius: 50%;
bottom: -0.25rem;
color: var(--accent-color-text);
content: "";
display: block;
font-size: 1.25rem;
font-weight: bold;
height: 1.5rem;
line-height: 1.5rem;
position: absolute;
right: -0.25rem;
text-align: center;
width: 1.5rem;
}
}
.author {
align-items: center;
display: flex;
font-weight: bold;
gap: 0.5em;
grid-area: name;
.instance {
background-color: var(--code-background-color);
border-radius: 9999px;
color: var(--neutral);
font-size: smaller;
font-weight: normal;
padding: 0.25em 0.75em;
&:hover {
opacity: 0.8;
text-decoration: none;
}
&.op {
background-color: var(
--code-background-color
);
color: var(--accent-color-text);
&::before {
content: "";
font-weight: bold;
margin-inline-end: 0.25em;
}
}
}
}
time {
@extend small;
grid-area: time;
line-height: 1.5rem;
}
main {
grid-area: post;
p:first-child {
margin-top: 0.25em;
}
p:last-child {
margin-bottom: 0;
}
}
footer {
@extend small;
grid-area: interactions;
.faves {
color: inherit;
&:hover {
opacity: 0.8;
text-decoration: none;
}
&::before {
color: red;
content: "";
font-size: 2rem;
margin-inline-end: 0.25em;
}
}
}
.emoji {
display: inline;
height: 1.25em;
vertical-align: middle;
width: 1.25em;
}
.invisible {
display: none;
}
.ellipsis::after {
content: "";
}
}
}

145
assets/sass/comments.scss Normal file
View File

@@ -0,0 +1,145 @@
section#comments {
#comments-wrapper {
margin: 1.5em 0;
padding: 0 var(--card-padding);
}
.comment {
display: grid;
column-gap: 1rem;
grid-template-areas:
"avatar name"
"avatar time"
"avatar post"
"...... interactions";
grid-template-columns: min-content;
justify-items: start;
margin: 0em auto 0em -1em;
padding: 0.5em;
&.comment-reply {
margin: 0em auto 0em 1em;
}
.avatar-link {
grid-area: avatar;
height: 4rem;
position: relative;
width: 4rem;
.avatar {
height: 100%;
width: 100%;
border-radius: 20%;
}
&.op::after {
background-color: var(--accent-color);
border-radius: 50%;
bottom: -0.25rem;
color: var(--accent-color-text);
content: "";
display: block;
font-size: 1.25rem;
font-weight: bold;
height: 1.5rem;
line-height: 1.5rem;
position: absolute;
right: -0.25rem;
text-align: center;
width: 1.5rem;
}
}
.author {
align-items: center;
display: flex;
font-weight: bold;
gap: 0.5em;
grid-area: name;
.instance {
background-color: var(--code-background-color);
border-radius: 9999px;
color: var(--neutral);
font-size: smaller;
font-weight: normal;
padding: 0.25em 0.75em;
&:hover {
opacity: 0.8;
text-decoration: none;
}
&.op {
background-color: var(
--code-background-color
);
color: var(--accent-color-text);
&::before {
content: "";
font-weight: bold;
margin-inline-end: 0.25em;
}
}
}
}
time {
@extend small;
grid-area: time;
line-height: 1.5rem;
}
main {
grid-area: post;
p:first-child {
margin-top: 0.25em;
}
p:last-child {
margin-bottom: 0;
}
}
footer {
@extend small;
grid-area: interactions;
.faves {
color: inherit;
&:hover {
opacity: 0.8;
text-decoration: none;
}
&::before {
color: red;
content: "";
font-size: 2rem;
margin-inline-end: 0.25em;
}
}
}
.emoji {
display: inline;
height: 1.25em;
vertical-align: middle;
width: 1.25em;
}
.invisible {
display: none;
}
.ellipsis::after {
content: "";
}
}
}

31
assets/sass/generic.scss Normal file
View File

@@ -0,0 +1,31 @@
.author {
margin: 0;
}
.center-img {
display: flex;
justify-content: center;
width: 80%;
}
.menu {
.trigger {
float: left;
display: flex;
align-items: center;
}
}
@media screen and (max-width: 768px) {
.menu {
.menu-icon {
position: relative;
}
}
}
small,
aside p {
font-size: smaller;
opacity: 0.9;
}

26
assets/sass/pride.scss Normal file
View File

@@ -0,0 +1,26 @@
@keyframes enterIn {
0% {
opacity: 0;
}
100% {
opacity: 100;
}
}
@media only screen and (min-width: 768px) {
#pridecodes-code-corner-svg {
width: 150px;
}
}
@media only screen and (max-width: 767px) {
#pridecodes-code-corner-svg {
width: 75px;
}
}
#pridecodes-code-corner-svg {
animation: enterIn 2s;
transition: all 0.2s ease-in-out;
&:hover {
transform: scale(1.1);
transform-origin: left top;
}
}

29
assets/sass/root.scss Normal file
View File

@@ -0,0 +1,29 @@
:root {
--blockquote-border-size: 4px;
--blockquote-background-color: rgb(248 248 248);
--heading-border-size: 4px;
--link-background-color: 189, 195, 199;
--link-background-opacity: 0.5;
--link-background-opacity-hover: 0.7;
--pre-background-color: #272822;
--pre-text-color: #f8f8f2;
--code-background-color: rgba(0, 0, 0, 0.12);
--code-text-color: #808080;
--table-border-color: #dadada;
--tr-even-background-color: #efefee;
@media (prefers-color-scheme: dark) {
--code-background-color: #272822;
--code-text-color: rgba(255, 255, 255, 0.9);
--table-border-color: #717171;
--tr-even-background-color: #545454;
--blockquote-background-color: rgb(75 75 75);
}
}

View File

@@ -0,0 +1,193 @@
// Social media sharing buttons
.resp-sharing-button__link,
.resp-sharing-button__icon {
display: inline-block;
}
.resp-sharing-button__link {
text-decoration: none;
color: #fff;
margin: 0.5em;
}
.resp-sharing-button {
border-radius: 5px;
transition: 25ms ease-out;
padding: 0.5em 0.75em;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
.resp-sharing-button__icon svg {
width: 1em;
height: 1em;
margin-right: 0.4em;
vertical-align: top;
}
.resp-sharing-button--small svg {
margin: 0;
vertical-align: middle;
}
/* Non solid icons get a stroke */
.resp-sharing-button__icon {
stroke: #fff;
fill: none;
}
/* Solid icons get a fill */
.resp-sharing-button__icon--solid,
.resp-sharing-button__icon--solidcircle {
fill: #fff;
stroke: none;
}
.resp-sharing-button--twitter {
background-color: #55acee;
}
.resp-sharing-button--twitter:hover {
background-color: #2795e9;
}
.resp-sharing-button--pinterest {
background-color: #bd081c;
}
.resp-sharing-button--pinterest:hover {
background-color: #8c0615;
}
.resp-sharing-button--facebook {
background-color: #3b5998;
}
.resp-sharing-button--facebook:hover {
background-color: #2d4373;
}
.resp-sharing-button--tumblr {
background-color: #35465c;
}
.resp-sharing-button--tumblr:hover {
background-color: #222d3c;
}
.resp-sharing-button--reddit {
background-color: #5f99cf;
}
.resp-sharing-button--reddit:hover {
background-color: #3a80c1;
}
.resp-sharing-button--google {
background-color: #dd4b39;
}
.resp-sharing-button--google:hover {
background-color: #c23321;
}
.resp-sharing-button--linkedin {
background-color: #0077b5;
}
.resp-sharing-button--linkedin:hover {
background-color: #046293;
}
.resp-sharing-button--email {
background-color: #777;
}
.resp-sharing-button--email:hover {
background-color: #5e5e5e;
}
.resp-sharing-button--xing {
background-color: #1a7576;
}
.resp-sharing-button--xing:hover {
background-color: #114c4c;
}
.resp-sharing-button--whatsapp {
background-color: #25d366;
}
.resp-sharing-button--whatsapp:hover {
background-color: #1da851;
}
.resp-sharing-button--hackernews {
background-color: #ff6600;
}
.resp-sharing-button--hackernews:hover,
.resp-sharing-button--hackernews:focus {
background-color: #fb6200;
}
.resp-sharing-button--vk {
background-color: #507299;
}
.resp-sharing-button--vk:hover {
background-color: #43648c;
}
.resp-sharing-button--facebook {
background-color: #3b5998;
border-color: #3b5998;
}
.resp-sharing-button--facebook:hover,
.resp-sharing-button--facebook:active {
background-color: #2d4373;
border-color: #2d4373;
}
.resp-sharing-button--twitter {
background-color: #55acee;
border-color: #55acee;
}
.resp-sharing-button--twitter:hover,
.resp-sharing-button--twitter:active {
background-color: #2795e9;
border-color: #2795e9;
}
.resp-sharing-button--linkedin {
background-color: #0077b5;
border-color: #0077b5;
}
.resp-sharing-button--linkedin:hover,
.resp-sharing-button--linkedin:active {
background-color: #046293;
border-color: #046293;
}
.resp-sharing-button--reddit {
background-color: #5f99cf;
border-color: #5f99cf;
}
.resp-sharing-button--reddit:hover,
.resp-sharing-button--reddit:active {
background-color: #3a80c1;
border-color: #3a80c1;
}
.article-lastmod,
.share-buttons {
a {
color: var(--body-text-color);
}
}
.page-content a[target="_blank"]::after {
content: none;
}

View File

@@ -0,0 +1,66 @@
#webmentions {
margin: 0;
position: relative;
z-index: 100;
line-height: 1.2em;
.comments {
overflow-x: hidden;
overflow-y: scroll;
}
h2 {
font-size: medium;
margin: 0;
padding: 2px;
}
.reacts img {
margin: 3px -1ex 8px 0;
}
img.missing {
border: dashed black 1px;
}
ul {
list-style-type: none;
margin: 0;
padding: 4px;
}
li {
text-indent: -1em;
padding-left: 1em;
}
a.reaction {
position: relative;
text-decoration: none;
margin-right: 0;
letter-spacing: -1ex;
margin-right: 3ex;
img {
max-height: 3em;
width: auto;
margin-right: -1ex;
border-radius: 25%;
}
sub {
font-size: 50%;
}
}
.comments li {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
.text {
font-style: italic;
text-decoration: none;
}
}
}

View File

@@ -0,0 +1,41 @@
<section class="share-buttons">
<!-- Sharingbutton Twitter -->
<a class="resp-sharing-button__link" href="https://twitter.com/intent/tweet/?text={{ .Title }}&amp;url={{ .Permalink }}" target="_blank" rel="noopener" aria-label="">
<div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.44 4.83c-.8.37-1.5.38-2.22.02.93-.56.98-.96 1.32-2.02-.88.52-1.86.9-2.9 1.1-.82-.88-2-1.43-3.3-1.43-2.5 0-4.55 2.04-4.55 4.54 0 .36.03.7.1 1.04-3.77-.2-7.12-2-9.36-4.75-.4.67-.6 1.45-.6 2.3 0 1.56.8 2.95 2 3.77-.74-.03-1.44-.23-2.05-.57v.06c0 2.2 1.56 4.03 3.64 4.44-.67.2-1.37.2-2.06.08.58 1.8 2.26 3.12 4.25 3.16C5.78 18.1 3.37 18.74 1 18.46c2 1.3 4.4 2.04 6.97 2.04 8.35 0 12.92-6.92 12.92-12.93 0-.2 0-.4-.02-.6.9-.63 1.96-1.22 2.56-2.14z"/></svg>
</div>
</div>
</a>
<!-- Sharingbutton Facebook -->
<a class="resp-sharing-button__link" href="https://facebook.com/sharer/sharer.php?u={{ .Permalink }}" target="_blank" rel="noopener" aria-label="">
<div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"/></svg>
</div>
</div>
</a>
<!-- Sharingbutton LinkedIn -->
<a class="resp-sharing-button__link" href="https://www.linkedin.com/shareArticle?mini=true&amp;url={{ .Permalink }}&amp;title={{ .Title }}&amp;summary={{ .Title }}&amp;source={{ .Permalink }}" target="_blank" rel="noopener" aria-label="">
<div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z"/></svg>
</div>
</div>
</a>
<!-- Sharingbutton Reddit -->
<a class="resp-sharing-button__link" href="https://reddit.com/submit/?url={{ .Permalink }}&amp;resubmit=true&amp;title={{ .Title }}" target="_blank" rel="noopener" aria-label="">
<div class="resp-sharing-button resp-sharing-button--reddit resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M24 11.5c0-1.65-1.35-3-3-3-.96 0-1.86.48-2.42 1.24-1.64-1-3.75-1.64-6.07-1.72.08-1.1.4-3.05 1.52-3.7.72-.4 1.73-.24 3 .5C17.2 6.3 18.46 7.5 20 7.5c1.65 0 3-1.35 3-3s-1.35-3-3-3c-1.38 0-2.54.94-2.88 2.22-1.43-.72-2.64-.8-3.6-.25-1.64.94-1.95 3.47-2 4.55-2.33.08-4.45.7-6.1 1.72C4.86 8.98 3.96 8.5 3 8.5c-1.65 0-3 1.35-3 3 0 1.32.84 2.44 2.05 2.84-.03.22-.05.44-.05.66 0 3.86 4.5 7 10 7s10-3.14 10-7c0-.22-.02-.44-.05-.66 1.2-.4 2.05-1.54 2.05-2.84zM2.3 13.37C1.5 13.07 1 12.35 1 11.5c0-1.1.9-2 2-2 .64 0 1.22.32 1.6.82-1.1.85-1.92 1.9-2.3 3.05zm3.7.13c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm9.8 4.8c-1.08.63-2.42.96-3.8.96-1.4 0-2.74-.34-3.8-.95-.24-.13-.32-.44-.2-.68.15-.24.46-.32.7-.18 1.83 1.06 4.76 1.06 6.6 0 .23-.13.53-.05.67.2.14.23.06.54-.18.67zm.2-2.8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5.7-2.13c-.38-1.16-1.2-2.2-2.3-3.05.38-.5.97-.82 1.6-.82 1.1 0 2 .9 2 2 0 .84-.53 1.57-1.3 1.87z"/></svg>
</div>
</div>
</a>
<!-- Sharingbutton WhatsApp -->
<a class="resp-sharing-button__link" href="whatsapp://send?text={{ .Title }}%20{{ .Permalink }}" target="_blank" rel="noopener" aria-label="">
<div class="resp-sharing-button resp-sharing-button--whatsapp resp-sharing-button--small"><div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.1 3.9C17.9 1.7 15 .5 12 .5 5.8.5.7 5.6.7 11.9c0 2 .5 3.9 1.5 5.6L.6 23.4l6-1.6c1.6.9 3.5 1.3 5.4 1.3 6.3 0 11.4-5.1 11.4-11.4-.1-2.8-1.2-5.7-3.3-7.8zM12 21.4c-1.7 0-3.3-.5-4.8-1.3l-.4-.2-3.5 1 1-3.4L4 17c-1-1.5-1.4-3.2-1.4-5.1 0-5.2 4.2-9.4 9.4-9.4 2.5 0 4.9 1 6.7 2.8 1.8 1.8 2.8 4.2 2.8 6.7-.1 5.2-4.3 9.4-9.5 9.4zm5.1-7.1c-.3-.1-1.7-.9-1.9-1-.3-.1-.5-.1-.7.1-.2.3-.8 1-.9 1.1-.2.2-.3.2-.6.1s-1.2-.5-2.3-1.4c-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6s.3-.3.4-.5c.2-.1.3-.3.4-.5.1-.2 0-.4 0-.5C10 9 9.3 7.6 9 7c-.1-.4-.4-.3-.5-.3h-.6s-.4.1-.7.3c-.3.3-1 1-1 2.4s1 2.8 1.1 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.3-.3-.4-.6-.5z"/></svg>
</div>
</div>
</a>
</section>

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"Target":"add.min.0708d69cf4c633cfe5d60afda02ceb7004fb0e5a4c21c84212b5c96068fbc416.css","MediaType":"text/css","Data":{"Integrity":"sha256-BwjWnPTGM8/l1gr9oCzrcAT7DlpMIchCErXJYGj7xBY="}} {"Target":"add.min.efdd7924ddeb85f41b4f406af38593b8cfd928bd5d3949007931a4c2e3510b7b.css","MediaType":"text/css","Data":{"Integrity":"sha256-7915JN3rhfQbT0Bq84WTuM/ZKL1dOUkAeTGkwuNRC3s="}}

View File

@@ -1,68 +0,0 @@
#webmentions {
margin: 0;
position: relative;
z-index: 100;
line-height: 1.2em;
}
#webmentions .comments {
overflow-x: hidden;
overflow-y: scroll;
}
#webmentions h2 {
font-size: medium;
margin: 0;
padding: 2px;
}
#webmentions .reacts img {
margin: 3px -1ex 8px 0;
}
#webmentions img.missing {
border: dashed black 1px;
}
#webmentions ul {
list-style-type: none;
margin: 0;
padding: 4px;
}
#webmentions li {
text-indent: -1em;
padding-left: 1em;
}
#webmentions a.reaction {
position: relative;
text-decoration: none;
margin-right: 0;
letter-spacing: -1ex;
margin-right: 3ex;
}
#webmentions a.reaction img {
max-height: 3em;
width: auto;
margin-right: -1ex;
border-radius: 25%;
}
#webmentions a.reaction sub {
font-size: 50%;
}
#webmentions .comments li {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
#webmentions .comments li .text {
font-style: italic;
text-decoration: none;
}