Skip to content

Commit b6f9a37

Browse files
authored
Use :has selector (#108)
1 parent 2c573d4 commit b6f9a37

File tree

4 files changed

+65
-99
lines changed

4 files changed

+65
-99
lines changed

build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const ext = path.join(__dirname, "extension.zip");
2424
}
2525

2626
/* minify */ {
27-
for(const file of ["index.js", "style.css"])
27+
for(const file of ["style.css"])
2828
fs.writeFileSync(path.join(dist, file), fs.readFileSync(path.join(dist, file), "utf-8")
2929
.replace(/(?<!^)\/\*.*\*\//g, '') // /* comments (except first copyright)
3030
.replace(/ \/\/.*$/gm,'') // // comments

src/index.js

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/manifest.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"name": "GitHub Red Issues",
55
"author": "Katsute",
66
"description": "Revert closed GitHub issues from purple back to red.",
7-
"version": "6.1",
7+
"version": "7.0",
88
"homepage_url": "https://github.com/KatsuteDev/GitHub-Red-Issues",
99
"icons": {
1010
"16": "icon16.png",
@@ -20,7 +20,6 @@
2020

2121
"permissions": [],
2222
"content_scripts": [{
23-
"js": ["index.js"],
2423
"css": ["style.css"],
2524
"matches": ["https://github.com/*"]
2625
}]

src/style.css

Lines changed: 63 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,90 @@
11
/* Copyright (C) 2023 Katsute <https://github.com/Katsute> */
22

33
:root {
4-
--rissue-pull-merged : var(--color-done-emphasis, #8957e5);
5-
--rissue-pull-merged-fg : var(--color-done-fg, #a371f7);
64
--rissue-issue-closed : var(--color-danger-emphasis, #da3633);
75
--rissue-issue-closed-fg : var(--color-danger-fg, #f85149);
8-
--rissue-issue-closed-bg : var(--color-bg-danger, rgba(248, 81, 73, 0.1));
6+
--rissue-issue-closed-bg : var(--color-danger-subtle, rgba(248, 81, 73, 0.1));
97
}
108

11-
/* issue icon */
12-
:not(.State.State--merged):not(.TimelineItem-badge) > svg.octicon-issue-closed,
13-
/* projects beta icon */
14-
projects-v2 :not(.rissue-closed-bg > svg) > path[d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z"],
15-
projects-v2 :not(.rissue-closed-bg > svg) > path[d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z"],
16-
/* discussion icon */
17-
:not(.State.State--merged) > svg.octicon-discussion-closed,
18-
/* tasklist */
19-
tasklist-block-title > div.color-bg-done > svg
20-
{
9+
@supports not selector(:has(+ *)) {
10+
11+
body::before {
12+
13+
width: 100%;
14+
z-index: 1000;
15+
display: block;
16+
position: fixed;
17+
18+
color: white;
19+
background-color: var(--rissue-issue-closed-fg);
20+
21+
padding: .1rem;
22+
content: "⚠️ Firefox does not yet support the :𝚑𝚊𝚜 CSS selector, enable it using the 𝚕𝚊𝚢𝚘𝚞𝚝.𝚌𝚜𝚜.𝚑𝚊𝚜-𝚜𝚎𝚕𝚎𝚌𝚝𝚘𝚛.𝚎𝚗𝚊𝚋𝚕𝚎𝚍 flag in 𝚊𝚋𝚘𝚞𝚝:𝚌𝚘𝚗𝚏𝚒𝚐 and restart Firefox.";
23+
24+
}
25+
26+
}
27+
28+
:not(projects-v2 figure) > :not(span.State--merged):not(.TimelineItem-badge) > :is(
29+
/* issue icon */
30+
svg.octicon-issue-closed,
31+
/* project icon */
32+
svg:has(path[d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z"] + path[d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z"]),
33+
/* search issue icon */
34+
svg:has(path[d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm1.5 0a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm10.28-1.72-4.5 4.5a.75.75 0 0 1-1.06 0l-2-2a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018l1.47 1.47 3.97-3.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"]),
35+
/* discussion icon */
36+
svg.octicon-discussion-closed,
37+
/* tasklist icon */
38+
.octicon-checklist.color-fg-done
39+
){
2140
color: var(--rissue-issue-closed-fg) !important;
2241
}
2342

24-
/* issue badge */
25-
#show_issue .gh-header-meta .State.State--merged,
26-
#show_issue .gh-header-sticky .State.State--merged,
27-
/* issue timeline icon */
28-
#show_issue .TimelineItem > .TimelineItem-badge.color-bg-done-emphasis,
29-
/* timeline mention closed issue label */
30-
.TimelineItem > .TimelineItem-body div[id^="ref-issue-"] ~ div > span.State--merged,
31-
/* pull timeline closed label */
32-
.pull-discussion-timeline .TimelineItem > .TimelineItem-body div span.State--merged,
33-
/* discussion badge */
34-
#partial-discussion-header.js-discussions-title-container span.State--merged {
43+
:is(
44+
/* issue badge */
45+
span.State--merged,
46+
/* timeline icon */
47+
.TimelineItem-badge
48+
):has(svg.octicon-issue-closed, svg.octicon-discussion-closed),
49+
/* projects issue badge */
50+
projects-v2 span[class^="StateLabel__StateLabelBase"]:has(path[d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z"] + path[d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z"]){
3551
background-color: var(--rissue-issue-closed) !important;
3652
}
3753

38-
/* pull timeline closed mention label override */
39-
.pull-discussion-timeline .TimelineItem > .TimelineItem-body div[id^="ref-pullrequest-"] ~ div span.State.State--merged {
40-
background-color: var(--rissue-pull-merged) !important;
54+
/* tasklist icon */
55+
tasklist-block-title > div.color-bg-done{
56+
background-color: var(--rissue-issue-closed-bg) !important;
4157
}
4258

43-
/* tasklist circle */
44-
tracked-issues-progress[data-type="tasklist_block"] svg > circle:last-child,
45-
tracked-issues-progress[data-type="tasklist_item"] svg > circle:last-child,
46-
/* projects tasklist circle */
47-
svg[data-target="tracked-issues-progress.progress"] > path,
48-
svg[data-target="tracked-issues-progress.progress"] > circle:last-child {
59+
:is(
60+
/* tasklist circle */
61+
tracked-issues-progress svg,
62+
/* projects tasklist circle */
63+
svg[data-target="tracked-issues-progress.progress"]
64+
) > circle:last-child{
4965
stroke: var(--rissue-issue-closed) !important;
5066
}
5167

52-
/* tasklist */
53-
tasklist-block-title > div.color-bg-done {
54-
background-color: var(--rissue-issue-closed-bg) !important;
55-
}
56-
57-
/* js overrides */
58-
.rissue-closed-fg {
59-
color: var(--rissue-issue-closed-fg) !important;
68+
/* projects tasklist check */
69+
projects-v2 :not(span) > svg[data-target="tracked-issues-progress.progress"] > path{
70+
fill: var(--rissue-issue-closed) !important;
6071
}
6172

62-
.rissue-closed-bg {
63-
background-color: var(--rissue-issue-closed) !important;
73+
/* tasklist fill */
74+
span > svg[data-target="tracked-issues-progress.progress"] > path{
75+
fill: var(--rissue-issue-closed-bg) !important;
6476
}
6577

6678
/* print */
6779
@media print {
68-
/* issue badge */
69-
#show_issue .gh-header-meta .State.State--merged,
70-
#show_issue .gh-header-sticky .State.State--merged,
71-
/* timeline mention closed issue label */
72-
.TimelineItem > .TimelineItem-body div[id^="ref-issue-"] ~ div > span.State--merged,
73-
/* pull timeline closed label */
74-
.pull-discussion-timeline .TimelineItem > .TimelineItem-body div span.State--merged,
75-
/* discussion badge */
76-
#partial-discussion-header.js-discussions-title-container span.State.State--merged {
80+
:is(
81+
/* issue badge */
82+
span.State--merged,
83+
/* timeline icon */
84+
.TimelineItem-badge
85+
):has(svg.octicon-issue-closed, svg.octicon-discussion-closed),
86+
/* projects issue badge */
87+
projects-v2 span[class^="StateLabel__StateLabelBase"]:has(path[d="M11.28 6.78a.75.75 0 0 0-1.06-1.06L7.25 8.69 5.78 7.22a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0l3.5-3.5Z"] + path[d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0Z"]){
7788
background: none !important;
7889
color: var(--rissue-issue-closed-fg) !important;
7990
border-color: var(--rissue-issue-closed) !important;

0 commit comments

Comments
 (0)