1<===> options.yml 2--- 3:todo: 4- sass/libsass#3154 5 6<===> README.md 7Because `:is()` is extremely flexible, there are more cases where it is 8technically a superselector or subselector than those represented here. However, 9universally supporting these would require the equivalent of fully resolving the 10`:is()` declaration in the same manner as `@extend` which would add way too 11much implementation complexity for such a marginal edge case. 12 13In particular, we don't require that superselectors be detected when the 14subselector contains `:is()` and the superselector does not (even though 15`c` is semantically a superselector of `:is(c)`). 16 17Most changes here should also be reflected in `matches.hrx`. 18 19<===> 20================================================================================ 21<===> simple/equal/input.scss 22a {b: is-superselector(":is(c)", "c")} 23 24<===> simple/equal/output.css 25a { 26 b: true; 27} 28 29<===> 30================================================================================ 31<===> simple/unequal/input.scss 32a {b: is-superselector(":is(c)", "d")} 33 34<===> simple/unequal/output.css 35a { 36 b: false; 37} 38 39<===> 40================================================================================ 41<===> compound/superset/input.scss 42a {b: is-superselector(":is(c.e)", "c.d.e")} 43 44<===> compound/superset/output.css 45a { 46 b: true; 47} 48 49<===> 50================================================================================ 51<===> compound/subset/input.scss 52a {b: is-superselector(":is(c.d.e)", "c e")} 53 54<===> compound/subset/output.css 55a { 56 b: false; 57} 58 59<===> 60================================================================================ 61<===> complex/superset/options.yml 62--- 63:todo: 64- sass/libsass#2972 65 66<===> complex/superset/input.scss 67a {b: is-superselector(":is(c e)", "c d e")} 68 69<===> complex/superset/output.css 70a { 71 b: true; 72} 73 74<===> 75================================================================================ 76<===> complex/subset/input.scss 77a {b: is-superselector(":is(c d e)", "c e")} 78 79<===> complex/subset/output.css 80a { 81 b: false; 82} 83 84<===> 85================================================================================ 86<===> list/superset/options.yml 87--- 88:todo: 89- sass/libsass#2972 90 91<===> list/superset/input.scss 92a {b: is-superselector(":is(c d, e f, g h)", "c d, e f")} 93 94<===> list/superset/output.css 95a { 96 b: true; 97} 98 99<===> 100================================================================================ 101<===> list/subset/input.scss 102a {b: is-superselector(":is(c d, e f)", "c d, e f, g h")} 103 104<===> list/subset/output.css 105a { 106 b: false; 107} 108 109<===> 110================================================================================ 111<===> both/README.md 112We do *allow* `:is()` in the subselector, we just require there to be a 113corresponding `:is()` in the superselector. Then we do a superselector 114check on those two selectors in isolation. 115 116<===> 117================================================================================ 118<===> both/superset/input.scss 119a {b: is-superselector(":is(c d, e f, g h)", ":is(c d.i, e j f)")} 120 121<===> both/superset/output.css 122a { 123 b: true; 124} 125 126<===> 127================================================================================ 128<===> both/subset/input.scss 129a {b: is-superselector(":is(c d.i, e j f)", ":is(c d, e f, g h)")} 130 131<===> both/subset/output.css 132a { 133 b: false; 134} 135 136<===> 137================================================================================ 138<===> prefix/superset/options.yml 139--- 140:todo: 141- sass/libsass#2972 142 143<===> prefix/superset/input.scss 144a {b: is-superselector(":-pfx-matches(c d, e f, g h)", "c d.i, e j f")} 145 146<===> prefix/superset/output.css 147a { 148 b: true; 149} 150 151<===> 152================================================================================ 153<===> prefix/subset/input.scss 154a {b: is-superselector(":-pfx-matches(c d.i, e j f)", "c d, e f, g h")} 155 156<===> prefix/subset/output.css 157a { 158 b: false; 159} 160 161<===> 162================================================================================ 163<===> not_superselector_of/README.md 164`:is()` isn't considered a superselector of other selectors with the same 165semantics, because in practice they match different browsers. 166 167<===> 168================================================================================ 169<===> not_superselector_of/any/input.scss 170a {b: is-superselector(":is(c, d)", ":any(c, d)")} 171 172<===> not_superselector_of/any/output.css 173a { 174 b: false; 175} 176 177<===> 178================================================================================ 179<===> not_superselector_of/prefixed/input.scss 180a {b: is-superselector(":is(c, d)", ":-pfx-matches(c, d)")} 181 182<===> not_superselector_of/prefixed/output.css 183a { 184 b: false; 185} 186