К основному содержанию
скилл CX Codex

konsta-ui — скилл для Claude Code: UI на Konsta UI v5 в Capacitor

Скилл помогает агенту собирать интерфейс Capacitor-приложения на Konsta UI v5 с Tailwind CSS v4 и разбираться, почему компоненты остались без стилей.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Cap-go/capgo-skills --skill konsta-ui -a claude-code
Открыть на GitHub

Что делает konsta-ui

Скилл описывает установку и настройку Konsta UI v5 в проектах на React 19, Vue 3 и Svelte 5. Стили подключаются через CSS: @import 'tailwindcss' и @import 'konsta/react/theme.css', а фирменные цвета задаются переменными --color-brand-* внутри блока @theme. Корень приложения оборачивается в App с пропсами theme, safeAreas и dark.

Внутри — таблица версий Konsta и Tailwind, порядок миграции с v3/v4, разбор типичных поломок и список проверок после сборки. Отдельная таблица ошибок покрывает случаи, когда компоненты рендерятся без стилей, ios:/material: классы не работают или Navbar и Tabbar заезжают под системные панели. Есть оговорка про Ionic: если он уже в проекте, вместо App берут KonstaProvider, и владелец safe area должен быть один — иначе получите двойной отступ сверху.

Скилл опирается на React 19: на React 18 после обновления Konsta появится предупреждение про ref и forwardRef, поэтому либо обновляйте React, либо оставайтесь на Konsta 4. Тёмная тема в v5 классовая, её переключают на <html>. Konsta отвечает только за UI — роутер, переходы между страницами и обработку кнопки «назад» на Android придётся подключать отдельно.

Какие задачи решает

  • поставить Konsta UI v5 в Capacitor-проект на React 19
  • перевести проект с Konsta v3/v4 на CSS-настройку Tailwind v4
  • разобраться, почему компоненты рендерятся без стилей
  • починить переключение тёмной темы и темы под платформу
  • убрать наложение Navbar и Tabbar на системные панели

Примеры запросов агенту

  • Подключи Konsta UI v5 к моему Capacitor-приложению на React 19
  • Компоненты Konsta рендерятся без стилей — найди причину
  • Перенеси проект с konstaConfig в tailwind.config.js на CSS-настройку v5

Как установить konsta-ui

1Через Skills CLI (Vercel)

npx skills add Cap-go/capgo-skills --skill konsta-ui -a claude-code

2Вручную: положить файлы

~/.claude/skills/konsta-ui/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/konsta-ui/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о konsta-ui

Как установить konsta-ui в Claude?

Выполните npx skills add Cap-go/capgo-skills --skill konsta-ui -a claude-code. Файл скилла появится по пути ~/.claude/skills/konsta-ui/SKILL.md.

Что делает konsta-ui?

Помогает агенту собирать интерфейс Capacitor-приложения на Konsta UI v5: подключение темы, фирменные цвета, выбор темы под платформу и миграция с v3/v4.

С какими фреймворками работает Konsta UI v5?

С React 19, Vue 3 и Svelte 5. Для Vue и Svelte тема подключается из konsta/vue/theme.css и konsta/svelte/theme.css.

Исходный текст

SKILL.md · MIT
---
name: konsta-ui
description: Builds Capacitor app UI with Konsta UI v5 (Tailwind CSS v4-based iOS and Material components for React 19, Vue 3, Svelte 5) - CSS-first setup (`@import 'tailwindcss'; @import 'konsta/react/theme.css';`), `--color-brand-*` colors in `@theme`, `<App theme="ios|material|parent" safeAreas dark>`, `KonstaProvider` when mixing with Ionic, `ios:`/`material:` variants, `pt-safe`/`no-safe-areas` utilities, `k-md-vibrant`/`k-md-monochrome`, and migrating from Konsta v3/v4 `konstaConfig` in `tailwind.config.js`. Use when installing or upgrading Konsta, components render unstyled, theme or dark mode does not switch, or Navbar/Tabbar overlap system bars. Do not use for Ionic components (ionic-design), plain Tailwind setup without Konsta (tailwind-capacitor), or native safe-area/edge-to-edge config (safe-area-handling).
---

# Konsta UI for Capacitor

## When to Use

TRIGGER when:
- Adding Konsta UI to a Capacitor app or choosing it over Ionic
- Upgrading Konsta v3/v4 (Tailwind v3 `konstaConfig`) to v5 (Tailwind v4)
- Components unstyled, colors ignored, `ios:`/`material:` classes do nothing
- Navbar / Tabbar under the status bar or gesture bar
- Theme should follow platform (`ios` on iPhone, `material` on Android)

Do not use:
- Ionic Framework components or theming: `ionic-design`
- Tailwind install/config without Konsta: `tailwind-capacitor`
- Android SystemBars / edge-to-edge native config: `safe-area-handling`
- Keyboard overlap in forms: `capacitor-keyboard`

## Versions (October 2026)

| Konsta | Tailwind | Frameworks | Config style |
|--------|----------|------------|--------------|
| 5.x (`latest`, 5.5.0) | v4 | React 19 (`ref` as prop), Vue 3, Svelte 5 (runes, snippets) | CSS: `@import 'konsta/<fw>/theme.css'` + `@theme` |
| 4.x | v3 | adds Svelte 5 types | JS: `konstaConfig()` in `tailwind.config.js` |
| 3.x and below | v3 | | JS `konstaConfig()` |

Check first: `npm ls konsta tailwindcss react vue svelte`. Never mix v5 CSS setup with a `tailwind.config.js` `konstaConfig` wrapper.

## Workflow

1. **Inspect** versions, main CSS file, `tailwind.config.*`, `postcss.config.*`, `vite.config.*`, `index.html` viewport meta, whether Ionic is also present.
2. **Install / upgrade** (below). For an existing Tailwind v3 project, migrate Tailwind first (`tailwind-capacitor`).
3. **Wrap the app** in `App` (or `KonstaProvider` with Ionic/Framework7).
4. **Build screens** with components: [references/components.md](references/components.md).
5. **Verify** (below).

Only load a reference when its topic is in play.

## Setup (v5, React shown; Vue/Svelte use `konsta/vue/theme.css` / `konsta/svelte/theme.css`)

```bash
npm i konsta tailwindcss @tailwindcss/vite
```

```ts
// vite.config.ts
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({ plugins: [react(), tailwindcss()] });
```

```css
/* src/index.css */
@import 'tailwindcss';
@import 'konsta/react/theme.css';

@theme {
  --color-brand-primary: #007aff; /* only --color-brand-* drive component colors */
  --color-brand-red: #ff3b30;     /* use with class k-color-brand-red */
}
```

```tsx
import { Capacitor } from '@capacitor/core';
import { App } from 'konsta/react';

const theme = Capacitor.getPlatform() === 'android' ? 'material' : 'ios';

export default function Root() {
  return (
    <App theme={theme} safeAreas>
      {/* pages */}
    </App>
  );
}
```

```html
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
```

`App` props: `theme` (`'ios' | 'material' | 'parent'`, default `material`), `safeAreas` (default `true`), `dark`, `iosHoverHighlight`, `materialTouchRipple` (global switches added in v5). Only one `App` per app.

Material Roboto font: add it yourself (Google Fonts link or self-hosted for offline). iOS uses the system font.

## Migrating v4 -> v5

| v4 | v5 |
|----|----|
| `tailwind.config.js`: `module.exports = konstaConfig({...})` | Delete wrapper; `@import 'konsta/react/theme.css'` in CSS |
| `konstaConfig.colors.primary` | `@theme { --color-brand-primary: ... }` |
| Per-component ripple config | Prefer the global `App materialTouchRipple`; check component types in your installed version |
| `SegmentedButton strong rounded` | Removed; use Segmented theme-specific style props |
| `Link navbar/toolbar/tabbar` props | Removed; context-driven |
| React `forwardRef` usage / `innerRef` patterns | `ref` prop (React 19) |
| Svelte slots | `{#snippet ...}` |

Then run the Tailwind v4 upgrade (`npx @tailwindcss/upgrade`) if Tailwind itself is still v3; see `tailwind-capacitor`.

## Traps

- With Ionic in the same app, use `KonstaProvider` (not `App`) and pick one owner for safe areas (Ionic's `--ion-safe-area-*` or Konsta's `safe-areas`), not both.
- Dark mode in Konsta v5 is class-based (`@custom-variant dark (&:where(.dark, .dark *))` in its CSS): toggle `dark` on `<html>`, set `App dark`, and match native bars with `SystemBars.setStyle`.
- Konsta's own docs show `user-scalable=no, maximum-scale=1`; prefer allowing zoom for accessibility and fix iOS input zoom with 16px inputs instead.
- Modals/side panels that are not full-screen need `no-safe-areas` (or `no-safe-areas-top` etc.) to avoid extra padding.
- Konsta is UI only: no router, no page transitions. Pair with React Router / Vue Router / SvelteKit and handle Android back button with `@capacitor/app` `backButton`.

## Verification

1. `npm run build && npx cap sync`, run on iOS and Android.
2. Inspect `<html>`/root: `.k-ios` or `.k-material` class present; `ios:`/`material:` utilities apply.
3. Navbar clears the Dynamic Island; Tabbar clears the home indicator and Android gesture bar (Android 15+ edge-to-edge).
4. Toggle dark mode; components and status bar icons switch together.
5. Leftover check: `grep -rn "konstaConfig\|konsta/config" .` returns nothing on v5.

## Error Handling

| Error / symptom | Cause | Fix |
|-----------------|-------|-----|
| `Cannot find module 'konsta/config'` | v5 removed JS config | Use CSS `@import 'konsta/react/theme.css'` |
| Components render unstyled | Theme CSS not imported, or Tailwind not scanning (no `@tailwindcss/vite` / `@tailwindcss/postcss`) | Import theme after `@import 'tailwindcss'`; add the Tailwind plugin |
| `[postcss] It looks like you're trying to use tailwindcss directly as a PostCSS plugin` | Tailwind v4 PostCSS plugin moved | Use `@tailwindcss/postcss` or `@tailwindcss/vite` |
| Brand color ignored | Variable not named `--color-brand-*`, or defined outside `@theme` | Rename inside `@theme` |
| `ios:` classes have no effect | `App`/`KonstaProvider` missing, so no `.k-ios` ancestor | Wrap app |
| React warning about `ref` / `forwardRef` after upgrade | React 18 with Konsta 5 | Upgrade to React 19 or stay on Konsta 4 |
| Double top padding | Konsta `safeAreas` + Ionic or custom `env()` padding | Keep one owner |

## Resources

- Konsta UI: https://konstaui.com
- React installation: https://konstaui.com/react/installation
- Safe areas: https://konstaui.com/react/safe-areas
- Colors: https://konstaui.com/react/colors
- Changelog: https://github.com/konstaui/konsta/blob/master/CHANGELOG.md

© Cap-go · MIT · Cap-go/capgo-skills

Похожие скиллы

Всё по теме «Мобильная разработка» →
tailwind-css-patterns giuseppe-trisciuoglio Скилл с готовыми паттернами Tailwind CSS: адаптивные сетки, карточки, формы, тёмная тема. Пригодится, когда агент верстает компоненты на React, Vue или Svelte. CX Codex +1 17 700установок web-haptics lochie Настраивает тактильный отклик в мобильных веб-интерфейсах через библиотеку web-haptics и Web Vibration API по правилам Apple HIG. CX Codex +1 812установок ionic-expert capawesome-team Скилл даёт агенту справочник по Ionic Framework: компоненты, CLI, темы, навигация и паттерны Angular, React и Vue. CX Codex +1 1 200установок ionic-app-upgrades capawesome-team Ведёт агента через мажорный апгрейд Ionic: пошаговые миграции для Angular, React и Vue, ломающие изменения компонентов и CSS-переменных. CX Codex +1 740установок web-component-design Seth Hobson Скилл помогает проектировать компоненты для React, Vue и Svelte. Подойдёт для библиотек UI, дизайн-систем и рефакторинга старых компонентов. CX Codex 13 167установок mapbox-web-integration-patterns mapbox Официальные паттерны встраивания Mapbox GL JS в React, Vue, Svelte, Angular и на чистом JavaScript. Пригодится, когда карта течёт по памяти или не инициализируется в нужном хуке. CX Codex +1 2 600установок

Из того же набора29

capacitor-keyboard Разбирает поведение экранной клавиатуры в приложениях на Capacitor: режимы resize на iOS, высоты событий, edge-to-edge на Android. Пригодится, когда поле ввода уезжает под клавиатуру. CX Codex +1 1 000установок tailwind-capacitor Настраивает Tailwind CSS v4 в приложениях на Capacitor и разбирает грабли мобильной вёрстки: safe-area, тёмная тема, варианты под iOS и Android. CX Codex +1 955установок framework-to-capacitor Настраивает статическую сборку Next.js, Nuxt, Angular, SvelteKit или Vite так, чтобы Capacitor упаковал её в приложение для iOS и Android. CX Codex +1 870установок capgo-live-updates Помогает подключить и отладить живые обновления Capgo в приложении на Capacitor: первый бандл, режимы autoUpdate, откаты. CX Codex +1 848установок cocoapods-to-spm Переводит iOS-проект Capacitor с CocoaPods на Swift Package Manager и подсказывает, что делать с плагинами без Package.swift. CX Codex +1 796установок capacitor-app-upgrades Ведёт приложение на Capacitor через мажорные версии по одной, с обязательным шагом UIScene для iOS перед Capacitor 9. CX Codex +1 771установок capacitor-plugin-upgrades Ведёт плагин Capacitor через один или несколько мажорных апгрейдов, от 4 до 9, с аудитом iOS UIScene. Пригодится мейнтейнерам, у которых peerDependencies отстали от приложения. CX Codex +1 730установок sqlite-to-fast-sql Переносит Capacitor-приложение с bridge-плагинов SQLite на @capgo/capacitor-fast-sql, сохраняя данные, транзакции и BLOB. CX Codex +1 706установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой