:root {
--angle: 0deg;
--flow-animation: rotate 4s linear infinite;
--current-flagged-color: var(--preview-pending-color);
}
body[data-current-user-is-approver=true] {
--current-flagged-color: var(--preview-flagged-color);
}
@property --angle {
syntax: "<angle>";
initial-value: 0deg;
inherits: false;
}
@keyframes blink {
to {
border-color: transparent;
}
}
@keyframes rotate {
to {
--angle: 360deg;
}
}
.post-status-has-children img:hover,
.post-status-has-parent img:hover,
.post-status-deleted img:hover,
.post-status-pending img,
.post-status-flagged img {
animation: blink 1.0s infinite alternate;
}
/* CSS Specificity: https://www.w3schools.com/css/css_specificity.asp */
article[data-tags~="loli"] img.post-preview-image,
article[data-tags~="shota"] img.post-preview-image {
border-color: pink;
}
article[data-tags~="loli"] img:hover,
article[data-tags~="shota"] img:hover {
border-image: conic-gradient(from var(--angle), transparent 50%, pink) 1;
animation: var(--flow-animation);
}
/* 2 colors */
.post-status-pending[data-tags~="loli"] img.post-preview-image,
.post-status-pending[data-tags~="shota"] img.post-preview-image {
border-image: conic-gradient(from var(--angle), transparent, pink 12% 38%, transparent, var(--preview-pending-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged[data-tags~="loli"] img.post-preview-image,
.post-status-flagged[data-tags~="shota"] img.post-preview-image {
border-image: conic-gradient(from var(--angle), transparent, pink 12% 38%, transparent, var(--current-flagged-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-pending.post-status-has-parent img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 12% 38%, transparent, var(--preview-pending-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged.post-status-has-parent img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 12% 38%, transparent, var(--current-flagged-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-pending.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 12% 38%, transparent, var(--preview-pending-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 12% 38%, transparent, var(--current-flagged-color) 62% 88%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-has-parent.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 12% 38%, transparent, var(--preview-has-children-color) 62% 88%, transparent) 1;
}
.post-status-deleted.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 12% 38%, transparent, var(--preview-deleted-color) 62% 88%, transparent) 1;
}
.post-status-deleted.post-status-has-parent img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 12% 38%, transparent, var(--preview-deleted-color) 62% 88%, transparent) 1;
}
.post-status-has-parent[data-tags~="loli"] img.post-preview-image,
.post-status-has-parent[data-tags~="shota"] img.post-preview-image {
border-image: conic-gradient(from var(--angle), transparent, pink 12% 38%, transparent, var(--preview-has-parent-color) 62% 88%, transparent) 1;
}
.post-status-has-children[data-tags~="loli"] img.post-preview-image,
.post-status-has-children[data-tags~="shota"] img.post-preview-image {
border-image: conic-gradient(from var(--angle), transparent, pink 12% 38%, transparent, var(--preview-has-children-color) 62% 88%, transparent) 1;
}
.post-status-deleted[data-tags~="loli"] img.post-preview-image,
.post-status-deleted[data-tags~="shota"] img.post-preview-image {
border-image: conic-gradient(from var(--angle), transparent, pink 12% 38%, transparent, var(--preview-deleted-color) 62% 88%, transparent) 1;
}
/* 3 colors */
.post-status-pending.post-status-has-parent.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--preview-pending-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged.post-status-has-parent.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--current-flagged-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-pending.post-status-has-children[data-tags~="loli"] img,
.post-status-pending.post-status-has-children[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, pink 5% 20%, transparent, var(--preview-has-children-color) 30% 45%, transparent, var(--preview-pending-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged.post-status-has-children[data-tags~="loli"] img,
.post-status-flagged.post-status-has-children[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, pink 5% 20%, transparent, var(--preview-has-children-color) 30% 45%, transparent, var(--current-flagged-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-pending.post-status-has-parent[data-tags~="loli"] img,
.post-status-pending.post-status-has-parent[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, pink 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--preview-pending-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-flagged.post-status-has-parent[data-tags~="loli"] img,
.post-status-flagged.post-status-has-parent[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, pink 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--current-flagged-color) 55% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-has-parent.post-status-has-children[data-tags~="loli"] img,
.post-status-has-parent.post-status-has-children[data-tags~="shota"] img {
/* Shorter loli/shota border?
* 5% 32.5%, 42.5% 70%, 80% 95% */
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, pink 55% 95%, transparent) 1;
}
.post-status-deleted.post-status-has-parent.post-status-has-children img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--preview-deleted-color) 55% 95%, transparent) 1;
}
.post-status-deleted.post-status-has-children[data-tags~="loli"] img,
.post-status-deleted.post-status-has-children[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, pink 30% 45%, transparent, var(--preview-deleted-color) 55% 95%, transparent) 1;
}
.post-status-deleted.post-status-has-parent[data-tags~="loli"] img,
.post-status-deleted.post-status-has-parent[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 5% 20%, transparent, pink 30% 45%, transparent, var(--preview-deleted-color) 55% 95%, transparent) 1;
}
/* 4 colors */
.post-status-has-parent.post-status-has-children.post-status-pending[data-tags~="loli"] img,
.post-status-has-parent.post-status-has-children.post-status-pending[data-tags~="shota"] img {
/* Longer pending/flagged border?
* 10% 22.5%, 32.5% 42.5%, 52.5% 65%, 80% 95% */
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-parent-color) 5% 20%, transparent, pink 30% 45%, transparent, var(--preview-has-children-color) 55% 70%, transparent, var(--preview-pending-color) 80% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-has-parent.post-status-has-children.post-status-flagged[data-tags~="loli"] img,
.post-status-has-parent.post-status-has-children.post-status-flagged[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, var(--preview-has-children-color) 5% 20%, transparent, pink 30% 45%, transparent, var(--preview-has-parent-color) 55% 70%, transparent, var(--current-flagged-color) 80% 95%, transparent) 1;
animation: var(--flow-animation);
}
.post-status-has-parent.post-status-has-children.post-status-deleted[data-tags~="loli"] img,
.post-status-has-parent.post-status-has-children.post-status-deleted[data-tags~="shota"] img {
border-image: conic-gradient(from var(--angle), transparent, pink 5% 20%, transparent, var(--preview-has-parent-color) 30% 45%, transparent, var(--preview-has-children-color) 55% 70%, transparent, var(--preview-deleted-color) 80% 95%, transparent) 1;
}
.post-status-has-parent.post-status-has-children img:hover,
.post-status-deleted.post-status-has-children img:hover,
.post-status-deleted.post-status-has-parent img:hover,
.post-status-has-parent[data-tags~="loli"] img:hover,
.post-status-has-parent[data-tags~="shota"] img:hover,
.post-status-has-children[data-tags~="loli"] img:hover,
.post-status-has-children[data-tags~="shota"] img:hover,
.post-status-deleted[data-tags~="loli"] img:hover,
.post-status-deleted[data-tags~="shota"] img:hover,
.post-status-has-parent.post-status-has-children[data-tags~="loli"] img:hover,
.post-status-has-parent.post-status-has-children[data-tags~="shota"] img:hover,
.post-status-deleted.post-status-has-parent.post-status-has-children img:hover,
.post-status-deleted.post-status-has-children[data-tags~="loli"] img:hover,
.post-status-deleted.post-status-has-children[data-tags~="shota"] img:hover,
.post-status-deleted.post-status-has-parent[data-tags~="loli"] img:hover,
.post-status-deleted.post-status-has-parent[data-tags~="shota"] img:hover,
.post-status-has-parent.post-status-has-children.post-status-deleted[data-tags~="loli"] img:hover,
.post-status-has-parent.post-status-has-children.post-status-deleted[data-tags~="shota"] img:hover {
animation: var(--flow-animation);
}