🇺🇦 Українська версія нижче ⬇
Extension for Visual Studio Code that extracts CSS/SCSS (or indented SASS) selectors from your HTML, JSX or TSX, preserving nesting, and outputs them (clipboard, preview or file).
⚙️ Features
- Parses HTML (
class="…"
, id="…"
, tags without attributes)
- Parses JSX/TSX (
className="…"
, conditional/template expressions, map()
, self-closing tags)
- Supports simple selectors (
.class
, #id
) or full selectors (tag.class#id…
)
- Configurable output syntax: scss or sass
- Output methods:
- ask each time (QuickPick)
- clipboard (copy silently)
- preview (open new editor tab)
- file (prompt to save
.scss
/.sass
)
- Localization: English 🇺🇸 / Ukrainian 🇺🇦 based on VS Code language
- Status-bar button for one-click extraction
🖱️ How to Use
- Open an HTML, .jsx or .tsx file in VS Code.
- Click the SCSS Extract button in the status bar, or run the command
Ctrl+Shift+P → Extract SCSS from HTML/JSX
- If
outputMethod
= “ask”, choose:
- Copy to Clipboard
- Show Preview
- Save to File
- Your SCSS/SASS code is generated with proper nesting.
⚙️ Configuration
Open Settings (Ctrl+,) and search for “Extract SCSS”. Available options:
Setting |
Type |
Default |
Description |
extractScss.syntax |
string |
scss |
Output syntax: scss (braces) or sass (indented). |
extractScss.selectorType |
string |
full |
Selector style: full (e.g. div.my-class#my-id ) or simple (.my-class or #my-id only). |
extractScss.outputMethod |
string |
ask |
Where to send generated code: ask , clipboard , preview , or file . |
extractScss.generateComponentSelectors |
boolean |
false |
If true, also generate selectors for component root elements based on their static classes/IDs. |
💡 Example
HTML
<div>
<h1 class="a">
<span class="b"></span>
<p></p>
<img/>
<div/>
<a href="" id="c"></a>
</h1>
</div>
Generated SCSS (with default settings):
div {
.a {
.b { }
p { }
img { }
div { }
#c { }
}
}
JSX / TSX
export default function Test() {
return (
<div className="wrapper">
{items.map(x => <span className="item" />)}
<footer id="ftr"><p/></footer>
</div>
);
}
Produces:
div.wrapper {
span.item { }
#ftr {
p { }
}
}
Author
Created with ❤️ by [Mrhopro]
And special thanks to [Mik00000]
🇺🇦 Витягування SCSS класів
Розширення для Visual Studio Code, яке витягує CSS/SCSS (або індентований SASS) селектори з HTML, JSX чи TSX, зберігає вкладеність і виводить їх (буфер, прев’ю або файл).
⚙️ Можливості
- Парсинг HTML (
class="…"
, id="…"
, теги без атрибутів)
- Парсинг JSX/TSX (
className="…"
, умовні/шаблонні вирази, map()
, self-closing теги)
- Підтримка простих селекторів (
.class
, #id
) або повних селекторів (tag.class#id…
)
- Налаштовуваний синтаксис: scss або sass
- Способи виводу:
- ask – запит щоразу (QuickPick)
- clipboard – копіювати без запиту
- preview – відкрити у новій вкладці
- file – зберегти у
.scss
/.sass
- Локалізація: англійська/українська залежно від мови VS Code
- Кнопка в статус-барі для швидкого запуску
🚀 Використання
- Відкрий файл HTML, .jsx або .tsx у VS Code.
- Натисни кнопку SCSS Extract в статус-барі або виконай команду
Ctrl+Shift+P → Extract SCSS from HTML/JSX
- Якщо
outputMethod
= “ask”, обери:
- Копіювати в буфер
- Показати прев’ю
- Зберегти у файл
- Отримай згенерований SCSS/SASS з коректною вкладеністю.
⚙️ Налаштування
Відкрий Налаштування (Ctrl+,) та знайди “Extract SCSS”. Доступні опції:
Налаштування |
Тип |
За замовч. |
Опис |
extractScss.syntax |
string |
scss |
Синтаксис: scss (з фігурними дужками) або sass (відступи). |
extractScss.selectorType |
string |
full |
Стиль селектора: full (наприклад div.class#id ) або simple (.class чи #id ). |
extractScss.outputMethod |
string |
ask |
Куди виводити: ask , clipboard , preview або file . |
extractScss.generateComponentSelectors |
boolean |
false |
Якщо true, генерувати селектори для кореневих компонентів за їхніми статичними класами/ID. |
📑 Приклади
HTML
<div>
<h1 class="a">
<span class="b"></span>
<p></p>
<img/>
<div/>
<a href="" id="c"></a>
</h1>
</div>
Згенерований SCSS:
div {
.a {
.b { }
p { }
img { }
div { }
#c { }
}
}
JSX / TSX
export default function Test() {
return (
<div className="wrapper">
{items.map(x => <span className="item" />)}
<footer id="ftr"><p/></footer>
</div>
);
}
Згенерований SCSS:
div.wrapper {
span.item { }
#ftr {
p { }
}
}
Автор
Створено з ❤️ [Mrhopro]
і окрема подяка [Mik00000]