LazowskiAnton · Extensions

ColorSmith

Образцы цвета и полноценный выбор цвета в редакторе Visual Studio. Образец появляется только там, где код действительно задаёт цвет, — и никогда у слова «red» в тексте страницы или у #123 в комментарии.

Бесплатно · Visual Studio 2022 и 2026 · 14 языков интерфейса · без телеметрии

Зачем ещё одно расширение для цветов

Умное распознавание

У каждого языка свой лексер, который отличает строки, комментарии и код. Имя цвета получает образец только в цветовом контексте (Foreground="Red", color: red), а не в обычном тексте.

Выбор цвета, который хочется открывать

HEX, RGB, HSL и OKLCH, пипетка с лупой, светлые и тёмные оттенки, цвета из файла, избранное, контраст по WCAG. Результат записывается обратно в той записи, которую уже использует код.

Бесплатно и без подвохов

Без подписки, пробного периода, назойливых окон и телеметрии. Настройки хранятся только на вашем компьютере.

Говорит на вашем языке

Английский, чешский, немецкий, испанский, французский, итальянский, японский, корейский, польский, португальский (Бразилия), русский, турецкий, китайский (упрощённый и традиционный). Язык берётся из Visual Studio.

Возможности

Языки

ЯзыкЧто получает образец
C#, Visual Basic, F#hex-строки, Colors.X / Brushes.X / Color.X, Color.FromArgb / FromRgb с литералами, Unity Color / Color32, SkiaSharp, MAUI
C / C++hex-строки, RGB(), D2D1::ColorF, QColor, IM_COL32
JavaScript / TypeScripthex- и CSS-строки, имена, присвоенные цветовым свойствам (fillStyle = 'red'), new THREE.Color(), классы Tailwind в JSX
Pythonhex-строки, matplotlib "tab:blue", QColor(…), имена только в цветовых аргументах (color="red", Tkinter bg=)
XAML / AXAMLцветовые свойства, сеттеры, ресурсы <Color>, градиентные кисти, ссылки на ресурсы, MAUI AppThemeBinding
CSS / SCSS / LESSтолько значения объявлений, переменные, light-dark(), color-mix(), градиенты, var()
HTML / Vue / SVG / Razorатрибуты style, цветовые атрибуты, блоки <style> и <script>, блоки C# в Razor, классы Tailwind

Выбор цвета

Щёлкните по образцу или нажмите Изменить в карточке цвета. Окно выбора цвета открывается рядом со значением и показывает, в какой записи оно будет записано обратно (в примере — Color.FromArgb()).

  • Поле насыщенности и яркости, полосы оттенка и прозрачности.
  • Ввод в HEX, RGB, HSL и OKLCH; строка ниже показывает ровно то, что будет записано в код.
  • Пипетка берёт цвет в любом месте экрана. Лупа показывает пиксели под курсором; стрелки сдвигают его на один пиксель, Shift+стрелки — на десять.
  • Копировать как HEX для XAML/.NET или CSS, rgb(), hsl(), oklch(), Color.FromArgb, Unity Color или 0xAARRGGBB.
  • Светлые и тёмные оттенки текущего цвета, цвета в этом файле, избранные (кнопка со звёздочкой) и недавние цвета.
  • Контраст (WCAG) цвета как текста на фоне редактора, на белом или на чёрном, с отметками AA / AAA / Крупный.
  • Ближайший именованный цвет (≈ DodgerBlue); щёлкните по нему, чтобы взять точное имя.
  • Enter применяет, Esc отменяет; щелчок вне окна тоже применяет. Разделы сворачиваются, и окно это запоминает. Кнопка ? открывает эту страницу.

Составные цвета и цвета ресурсов в окне выбора доступны только для чтения: меняйте цвета внутри них или сам ресурс там, где он определён.

Окно выбора цвета ColorSmith в тёмной теме
Окно выбора цвета следует теме Visual Studio.

Карточка цвета

Наведите указатель на цвет, чтобы увидеть его карточку. В режимах подчёркивания и фона в карточке есть и кнопки: Изменить открывает выбор цвета, Копировать копирует значение, Заменить цвет в решении… запускает замену по всему решению. Alt+щелчок по образцу копирует значение, ничего не открывая.

Как работает распознавание

ColorSmith не ищет цвета в тексте одним большим регулярным выражением. Лексер языка делит каждый файл на строки, комментарии и код, и значение считается цветом, только если место не оставляет сомнений. Есть сомнения — нет образца.

Получает образецОстаётся без образца
Foreground="Red", color: red;<p>Red is my favorite color</p>
"#3D8BFF", // #3D8BFF// fixed in #123 (короткий hex в комментариях)
Color.FromArgb(255, 61, 139, 255)Color.FromArgb(alpha, r, g, b) (значение неизвестно)
bg-sky-500, text-white/80text-lg, border-2, bg-cover
color="red" в Pythonstatus = "red", (255, 0, 0)
a { color: navy }селекторы #main, .red, font-family: Red Hat

8-значный hex

#XXXXXXXX в .NET, XAML и Qt означает альфу в начале (#AARRGGBB), а в CSS и JavaScript — альфу в конце (#RRGGBBAA). Для строк в C#, VB и C++ порядок задаётся в настройках, потому что Unity и веб-ориентированный код ставят альфу в конец.

Замена в решении

Открывается лампочкой (Ctrl+.) на цвете или кнопкой в карточке цвета. Находит цвет во всех записях по всей папке решения (кроме bin, obj и node_modules), даёт выбрать места и переписывает каждое в его собственной записи. Изменённые файлы открываются несохранёнными, с одним шагом отмены на файл, так что всё можно проверить до сохранения.

Настройки

Средства → Параметры → SmithWorks → ColorSmith. Под каждым параметром есть описание.

ПараметрПо умолчанию
Показывать образцы цветавкл.
Способ отображенияПодчёркивание
Размер образцаСредний
Цвет в IntelliSenseвкл.
Замена в решениивкл.
Hex-цвета в комментарияхвкл.
Классы Tailwind CSSвкл.
Цвета ресурсоввкл.
8-значный hex в C#, VB и C++#AARRGGBB
Максимальный размер файла (КБ)4096
Языкивсе вкл.

Настройки хранятся в %LocalAppData%\ColorSmith вместе с избранными и недавними цветами окна выбора цвета.

Страница параметров ColorSmith
Страница параметров. Ссылка Документация внизу открывает эту страницу.

Вопросы и ответы

Почему у моего цвета нет образца?

Скорее всего, место неоднозначно: имя вне цветового контекста, вызов с переменной в аргументе, короткий hex в комментарии или значение, собранное через var()/calc(). Проверьте также, что язык включён в настройках, а файл меньше ограничения по размеру.

Можно ли показывать цвета значками прямо в списке IntelliSense?

Нет. Visual Studio не даёт расширению менять значки элементов автодополнения от других поставщиков. Вместо этого ColorSmith показывает плашку с цветом над курсором.

Сдвигает ли образец мой код?

Только в режиме «квадрат перед значением». Режимы «на полях», «подчёркивание» и «фон» текст не сдвигают.

Можно ли изменить цвет ресурса там, где он используется?

Пока нет. Карточка показывает значение для каждой темы с файлом и строкой; меняйте его там, где ресурс определён.

Отправляет ли ColorSmith какие-нибудь данные?

Нет. Телеметрии нет, доступа к сети тоже.

Где сообщить о проблеме или предложить идею?

Создайте issue в репозитории Feedback на GitHub — там есть формы для ошибок и идей. Также можно воспользоваться вкладкой Q&A на Marketplace.

История изменений

1.0.2

1.0.1

1.0.0