Skip to content

Instantly share code, notes, and snippets.

@claudioluciano
Last active August 17, 2025 18:47
Show Gist options
  • Select an option

  • Save claudioluciano/1c108c5fe7804d3ff393f27667d84971 to your computer and use it in GitHub Desktop.

Select an option

Save claudioluciano/1c108c5fe7804d3ff393f27667d84971 to your computer and use it in GitHub Desktop.
Obsidian - snippet to create spoilers on notes
:root {
--spoiler-bg-color: rgb(23, 23, 26);
--spoiler-border-radius: 2px;
--spoiler-transition-duration: 0.3s;
--spoiler-transition-timing: ease-in-out;
}
/* Document */
/* Hide the checkbox */
[data-task="#"]>label {
display: none;
}
/* Spoiler when the line is not active */
[data-task="#"]:not(.cm-active)>.cm-list-1::before {
content: ' ';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--spoiler-bg-color);
border-radius: var(--spoiler-border-radius);
transition: opacity var(--spoiler-transition-duration) var(--spoiler-transition-timing);
}
/* Reveal when hovering and the line is not active */
[data-task="#"]:hover:not(.cm-active)>.cm-list-1::before {
opacity: 0;
}
/* Popover */
/* Hide the checkbox */
.popover [data-task="#"]>input[type="checkbox"] {
display: none;
}
/* Remove the margin on the left of the spoiler */
.popover [data-task="#"] {
margin-inline-start: initial;
}
/* Spoiler the line */
.popover [data-task="#"]::before {
content: ' ';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--spoiler-bg-color);
border-radius: var(--spoiler-border-radius);
transition: opacity var(--spoiler-transition-duration) var(--spoiler-transition-timing);
}
/* Reveal when hovering */
.popover [data-task="#"]:hover::before {
opacity: 0;
}
@ErisEve
Copy link

ErisEve commented Dec 1, 2024

Tested it out, it's perfect!
Now the only problem stays is that when I hover a link to a file with a spoiler tag, the tags show up as checked checkbox, and not a spoiler!
image

@claudioluciano
Copy link
Author

Tested it out, it's perfect! Now the only problem stays is that when I hover a link to a file with a spoiler tag, the tags show up as checked checkbox, and not a spoiler! image

Hey, i've update the snippet to cover the popover when you hover a link to another file. (:

@ErisEve
Copy link

ErisEve commented Dec 1, 2024

You're the most dedicated man alive
Thank you sir, would've given it thousands stars if I found out a glitch how lmao
Have a good day !! :))

@claudioluciano
Copy link
Author

You're the most dedicated man alive Thank you sir, would've given it thousands stars if I found out a glitch how lmao Have a good day !! :))

Thanks man, I'm glad you liked it.

@liam-messinger
Copy link

I had an issue (macOS) where the spoiler blocks were covering the entire line width instead of just the text content.

Fix: Made the spoiler containers inline-block to fit content width and added padding for better right-hand spacing to match the space added by content: ' ':

/* Document */
[data-task="#"] .cm-list-1 {
    display: inline-block;
    position: relative;
    padding-right: 0.1ch;
}

/* Popover */
.popover [data-task="#"] {
    margin-inline-start: initial;
    display: inline-block;
    position: relative;
    padding-right: 0.1ch;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment