{"action":"created","issue":{"url":"https://api.github.com/repos/sass/sass/issues/1934","labels_url":"https://api.github.com/repos/sass/sass/issues/1934/labels{/name}","comments_url":"https://api.github.com/repos/sass/sass/issues/1934/comments","events_url":"https://api.github.com/repos/sass/sass/issues/1934/events","html_url":"https://github.com/sass/sass/issues/1934","id":121997365,"number":1934,"title":"@extend placeholders with siblings","user":{"login":"artch","id":2923269,"avatar_url":"https://avatars.githubusercontent.com/u/2923269?v=3","gravatar_id":"","url":"https://api.github.com/users/artch","html_url":"https://github.com/artch","followers_url":"https://api.github.com/users/artch/followers","following_url":"https://api.github.com/users/artch/following{/other_user}","gists_url":"https://api.github.com/users/artch/gists{/gist_id}","starred_url":"https://api.github.com/users/artch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artch/subscriptions","organizations_url":"https://api.github.com/users/artch/orgs","repos_url":"https://api.github.com/users/artch/repos","events_url":"https://api.github.com/users/artch/events{/privacy}","received_events_url":"https://api.github.com/users/artch/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-12-14T08:38:36Z","updated_at":"2015-12-15T14:36:01Z","closed_at":"2015-12-14T17:48:53Z","body":"We'd like to use `@extend` and `%placeholder` mechanics to create semantic stylesheet which will look something like that:\r\n\r\n```scss\r\n%btn {\r\n  display: block;\r\n}\r\n.person-edit {\r\n  @extend %btn;\r\n}\r\n.person-create {\r\n  @extend %btn;\r\n}\r\n.person-delete {\r\n  @extend %btn;\r\n}\r\n```\r\n\r\nIt works well until we start using sibling selectors:\r\n```scss\r\n%btn {\r\n  display: block;\r\n}\r\n%btn + %btn {\r\n  margin-left: 10px;\r\n}\r\n```\r\n\r\nThis will produce the following CSS: \r\n```css\r\n.person-edit, .person-create, .person-delete {\r\n  display: block;\r\n}\r\n\r\n.person-edit + .person-edit, .person-create + .person-edit, .person-delete + .person-edit, .person-edit + .person-create, .person-create + .person-create, .person-delete + .person-create, .person-edit + .person-delete, .person-create + .person-delete, .person-delete + .person-delete {\r\n  margin-left: 10px;\r\n}\r\n```\r\n\r\nEvery extended placeholder class bloats into huge number of all possible combinations so that it will generate `button_count ^ 2` total selectors.\r\n\r\nAre there any ways to optionally disable such combinations generation for placeholder extended classes?\r\n"},"comment":{"url":"https://api.github.com/repos/sass/sass/issues/comments/164782551","html_url":"https://github.com/sass/sass/issues/1934#issuecomment-164782551","issue_url":"https://api.github.com/repos/sass/sass/issues/1934","id":164782551,"user":{"login":"artch","id":2923269,"avatar_url":"https://avatars.githubusercontent.com/u/2923269?v=3","gravatar_id":"","url":"https://api.github.com/users/artch","html_url":"https://github.com/artch","followers_url":"https://api.github.com/users/artch/followers","following_url":"https://api.github.com/users/artch/following{/other_user}","gists_url":"https://api.github.com/users/artch/gists{/gist_id}","starred_url":"https://api.github.com/users/artch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artch/subscriptions","organizations_url":"https://api.github.com/users/artch/orgs","repos_url":"https://api.github.com/users/artch/repos","events_url":"https://api.github.com/users/artch/events{/privacy}","received_events_url":"https://api.github.com/users/artch/received_events","type":"User","site_admin":false},"created_at":"2015-12-15T14:36:01Z","updated_at":"2015-12-15T14:36:01Z","body":"@chriseppstein You wrote this:\r\n\r\n> FWIW, once the CSS :matches() pseudo selector is well supported, Sass will be able to emit a much more elegant output selector here: :matches(.person-edit, .person-create, .person-delete) + :matches(.person-edit, .person-create, .person-delete)\r\n\r\nThe question is, when is this expected?"}}