personal-site/assets/style/markdown.scss
2025-01-25 19:37:29 -08:00

277 lines
7.6 KiB
SCSS
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Note: Use `md-override` to override the default markdown styling */
/* Headers (1-3) get a small visual upgrade */
.md-contents h1:not(.md-override), .md-contents h2:not(.md-override), .md-contents h3:not(.md-override) {
@apply border-highlight border-b-2;
padding-bottom: 0.25rem;
margin-bottom: 0.5rem;
margin-top: 1rem;
}
// reset all alert styles
.md-contents alert {
all: unset;
@apply border-2 border-primary shadow-primary shadow-md rounded-md w-fit h-fit p-2 block m-4;
}
/* Different alert types get different colors */
.md-contents alert[type="warning"]:not(.md-override) {
@apply border-2 border-warning shadow-warning shadow-md;
}
.md-contents alert[type="warning"]:not(.md-override)::before {
content: "⚠️ Warning ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="danger"]:not(.md-override) {
@apply border-2 border-danger shadow-danger shadow-md;
}
.md-contents alert[type="danger"]:not(.md-override)::before {
content: "❌ Danger ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="success"]:not(.md-override) {
@apply border-2 border-success shadow-success shadow-md;
}
.md-contents alert[type="success"]:not(.md-override)::before {
content: "✅ Success ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="info"]:not(.md-override) {
@apply border-2 border-info shadow-info shadow-md;
}
.md-contents alert[type="info"]:not(.md-override)::before {
content: " Info ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="important"]:not(.md-override) {
@apply border-2 border-important shadow-important shadow-md;
}
.md-contents alert[type="important"]:not(.md-override)::before {
content: "🔥 Important ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="caution"]:not(.md-override) {
@apply border-2 border-warning shadow-warning shadow-md;
}
.md-contents alert[type="caution"]:not(.md-override)::before {
content: "⚠️ Caution ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="note"]:not(.md-override) {
@apply border-2 border-note shadow-note shadow-md;
}
.md-contents alert[type="note"]:not(.md-override)::before {
content: "📝 Note ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="tip"]:not(.md-override) {
@apply border-2 border-tip shadow-tip shadow-md;
}
.md-contents alert[type="tip"]:not(.md-override)::before {
content: "💡 Tip ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="deprecated"]:not(.md-override) {
@apply border-2 border-danger shadow-danger shadow-md;
}
.md-contents alert[type="deprecated"]:not(.md-override)::before {
content: "🚫 Deprecated ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="example"]:not(.md-override) {
@apply border-2 border-info shadow-info shadow-md;
}
.md-contents alert[type="example"]:not(.md-override)::before {
content: "💡 Example ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="todo"]:not(.md-override) {
@apply border-2 border-warning shadow-warning shadow-md;
}
.md-contents alert[type="todo"]:not(.md-override)::before {
content: "📝 Todo ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="done"]:not(.md-override) {
@apply border-2 border-success shadow-success shadow-md;
}
.md-contents alert[type="done"]:not(.md-override)::before {
content: "✅ Done ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
.md-contents alert[type="quote"]:not(.md-override) {
@apply border-2 border-note shadow-note shadow-md border-dashed;
}
.md-contents alert[type="quote"]:not(.md-override)::before {
content: "🗨️ Quote ";
margin-right: 0.5rem;
text-shadow: 0 0 7px black;
}
/* Footnotes, ensure they are by default white with no transition if they have no href */
.md-contents .footnote-anchor:not([href]) {
color: white;
transition: none;
}
/* Apply margin to code blocks */
.md-contents pre:not(.md-override) {
margin: 1rem 0;
}
/* Apply styling to lists and list items with nesting */
.md-contents ul:not(.md-override), .md-contents ol:not(.md-override) {
margin: 1rem 0;
padding-left: 1rem;
}
/* Apply different bullet types to nested lists as they are nested */
.md-contents ul:not(.md-override) ul:not(.md-override), .md-contents ol:not(.md-override) ul:not(.md-override) {
list-style-type: circle;
}
/* Apply table styling, with a pleasant glowing border effect */
.md-contents table:not(.md-override) {
border-collapse: collapse;
width: 100%;
border: 1px solid #333;
box-shadow: 0 0 7px #A020F0
}
.md-contents th:not(.md-override), .md-contents td:not(.md-override) {
border: 1px solid #A020F0;
padding: 0.5rem;
}
.md-contents th:not(.md-override) {
background-color: #333;
color: white;
}
Hosted
.md-contents button:not(.md-override) {
background-color: #333;
color: white;
border: 1px solid #A020F0;
padding: 0.5rem;
border-radius: 0.25rem;
box-shadow: 0 0 7px #A020F0;
}
.md-contents button:hover:not(.md-override) {
background-color: #555;
box-shadow: 0 0 10px #A020F0;
color: white;
}
/* transition for button hover effect */
.md-contents button:not(.md-override) {
transition: background-color 0.5s;
}
/* iframes get a border and a shadow */
.md-contents iframe:not(.md-override) {
@apply border-2 border-purple-600 rounded-lg;
box-shadow: 0 0 7px #A020F0;
}
/* Identify if the iframe links to a YouTube video - If so, red border */
.md-contents iframe[src*="youtube.com"]:not(.md-override) {
@apply border-2 border-red-600;
box-shadow: 0 0 7px red;
}
/* Identify if the iframe links to a Twitch video - If so, purple border */
.md-contents iframe[src*="twitch.tv"]:not(.md-override) {
@apply border-2 border-purple-600;
box-shadow: 0 0 7px #A020F0;
}
/* Identify if the iframe links to a Spotify playlist - If so, green border */
.md-contents iframe[src*="spotify.com"]:not(.md-override) {
@apply border-2 border-green-600 rounded-xl;
box-shadow: 0 0 7px green;
}
/* Identify if the iframe links to a SoundCloud track - If so, orange border */
.md-contents iframe[src*="soundcloud.com"]:not(.md-override) {
@apply border-2 border-orange-600;
box-shadow: 0 0 7px orange;
}
/* Identify if the iframe links to a Bandcamp track - If so, blue border */
.md-contents iframe[src*="bandcamp.com"]:not(.md-override) {
@apply border-2 border-blue-600;
box-shadow: 0 0 7px blue;
}
/* Identify if the iframe links to a GitHub Gist - If so, gray border */
.md-contents iframe[src*="gist.github.com"]:not(.md-override) {
@apply border-2 border-gray-600;
box-shadow: 0 0 7px gray;
}
/* And if it links to Wikipedia, the free online encyclopedia, give it a white border */
.md-contents iframe[src*="wikipedia.org"]:not(.md-override) {
@apply border-2 border-white;
box-shadow: 0 0 7px white;
}
/* If the iframe links to a Google Maps location */
.md-contents iframe[src*="google.com/maps"]:not(.md-override) {
border-left: 2px solid #4285F4;
border-right: 2px solid #0F9D58;
border-top: 2px solid #F4B400;
border-bottom: 2px solid #DB4437;
box-shadow: 0 0 7px #4285F4;
}
/* Redo the audio element styling */
.md-contents audio:not(.md-override) {
@apply border-2 border-purple-600 rounded-lg;
box-shadow: 0 0 7px #A020F0;
}
/* Images get a border and a shadow */
.md-contents img:not(.md-override) {
@apply shadow-image shadow-sm m-1;
}