{"id":15506231,"url":"https://github.com/fi3ework/postcss-rename-selector","last_synced_at":"2025-10-03T14:33:33.158Z","repository":{"id":57328419,"uuid":"252951326","full_name":"fi3ework/postcss-rename-selector","owner":"fi3ework","description":"🌖 Effortlessly Rename CSS Selectors.","archived":false,"fork":false,"pushed_at":"2020-06-08T15:43:56.000Z","size":166,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T22:35:14.073Z","etag":null,"topics":["ant-design","antd","css","less","postcss","postcss-plugin"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fi3ework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-04T08:55:11.000Z","updated_at":"2023-06-07T15:36:17.000Z","dependencies_parsed_at":"2022-09-26T22:22:03.719Z","dependency_job_id":null,"html_url":"https://github.com/fi3ework/postcss-rename-selector","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fi3ework%2Fpostcss-rename-selector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fi3ework%2Fpostcss-rename-selector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fi3ework%2Fpostcss-rename-selector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fi3ework%2Fpostcss-rename-selector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fi3ework","download_url":"https://codeload.github.com/fi3ework/postcss-rename-selector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249758728,"owners_count":21321584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ant-design","antd","css","less","postcss","postcss-plugin"],"created_at":"2024-10-02T09:26:23.168Z","updated_at":"2025-10-03T14:33:28.116Z","avatar_url":"https://github.com/fi3ework.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# postcss-rename-selector\n\nA PostCSS plugin for modify CSS selector flexible.\n\n## Usage\n\nPlugin support two ways to modify selectors. In raw mode, you can return a new string from original selector string. In AST mode, you can modify the AST to get a generated selector string.\n\n### raw mode\n\nIn this mode, type should be fixed to `string`. Argument `raw` is the raw selector string, and the selector will use the returned new string.\n\n```tsx\nimport postcss from 'postcss'\nimport { replacer } from 'postcss-rename-selector'\n\nmodule.exports = {\n  plugins: [\n    replacer({\n      type: 'string',\n      replacer: (raw) =\u003e {\n        return raw.replace('.b', '.ant-b')\n      },\n    }),\n  ],\n}\n\n// in 👇\n// .a, .b, .c { color: red };\n\n// out 👇\n// .a, .ant-b, .c { color: red };\n```\n\n### AST mode\n\nBased on [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser/blob/master/API.md), `type` could be `each`, `walk`, `walkAttributes`, `walkClasses`, `walkCombinators`, `walkComments`, `walkIds`, `walkNesting`, `walkPseudos`, `walkTags`. Modify node on the AST, and new string will be generated after modification.\n\n```tsx\nimport postcss from 'postcss'\nimport { replacer } from 'postcss-rename-selector'\n\nmodule.exports = {\n  plugins: [\n    replacer({\n      type: 'string',\n      replacer: (node) =\u003e {\n        const value = node.value\n        if (!value) return\n        node.value = value.startsWith('ant-') ? value.slice(4) : value\n      },\n    }),\n  ],\n}\n\n// in 👇\n\n// .ant-a,\n// .ant-b,\n// .c,\n// .ant-d {\n//   color: red\n// };\n\n// out 👇\n\n// .a,\n// .b,\n// .c,\n// .d {\n//   color: red\n// };\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffi3ework%2Fpostcss-rename-selector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffi3ework%2Fpostcss-rename-selector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffi3ework%2Fpostcss-rename-selector/lists"}