konsta-ui
Skill75 starsChanged 33 days agoMITView on GitHub
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).
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Aver005/agent-skillstheir own version, first seen Feb 14, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Aver005/agent-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- capacitor-accessibilitySkill
- capacitor-app-intentsSkill
- capacitor-apple-review-preflightSkill
- capacitor-app-storeSkill
- capacitor-app-upgradesSkill
- capacitor-app-upgrade-v4-to-v5Skill
- capacitor-app-upgrade-v5-to-v6Skill
- capacitor-app-upgrade-v6-to-v7Skill
- capacitor-app-upgrade-v7-to-v8Skill
- capacitor-app-upgrade-v8-to-v9Skill
- capacitor-best-practicesSkill
- capacitor-ci-cdSkill
- capacitor-deep-linkingSkill
- capacitor-ios-resizabilitySkill
- capacitor-ios-security-hardeningSkill
- capacitor-keyboardSkill
- capacitor-mcpSkill
- capacitor-offline-firstSkill
- capacitor-performanceSkill
- capacitor-plugin-spm-supportSkill
- capacitor-pluginsSkill
- capacitor-plugin-upgradesSkill
- capacitor-plugin-upgrade-v4-to-v5Skill
- capacitor-plugin-upgrade-v5-to-v6Skill
- capacitor-plugin-upgrade-v6-to-v7Skill
- capacitor-plugin-upgrade-v7-to-v8Skill
- capacitor-plugin-upgrade-v8-to-v9Skill
- capacitor-push-notificationsSkill
- capacitor-securitySkill
- capacitor-splash-screenSkill
- capacitor-testingSkill
- capacitor-uiscene-migrationSkill
- capawesome-live-update-migrationSkill
- capgo-cli-usageSkill
- capgo-cloudSkill
- capgo-live-updatesSkill
- capgo-native-buildsSkill
- capgo-organization-managementSkill
- capgo-release-managementSkill
- capgo-release-workflowsSkill
- cocoapods-to-spmSkill
- cordova-to-capacitorSkill
- debugging-capacitorSkill
- framework-to-capacitorSkill
- ionic-appflow-migrationSkill
- ionic-designSkill
- ionic-enterprise-sdk-migrationSkill
- ios-android-logsSkill
- safe-area-handlingSkill
- skill-creatorSkill
- sqlite-to-fast-sqlSkill
- subscription-app-revenueSkill
- tailwind-capacitorSkill
- webapp-to-capacitorSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
Check first: npm ls konsta tailwindcss react vue svelte.
- Distinctive: line 41
Only load a reference when its topic is in play.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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 (
ioson iPhone,materialon 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
- Inspect versions, main CSS file,
tailwind.config.*,postcss.config.*,vite.config.*,index.htmlviewport meta, whether Ionic is also present. - Install / upgrade (below). For an existing Tailwind v3 project, migrate Tailwind first (
tailwind-capacitor). - Wrap the app in
App(orKonstaProviderwith Ionic/Framework7). - Build screens with components: references/components.md.
- 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)
npm i konsta tailwindcss @tailwindcss/vite// vite.config.ts
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({ plugins: [react(), tailwindcss()] });/* 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 */
}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>
);
}<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(notApp) and pick one owner for safe areas (Ionic's--ion-safe-area-*or Konsta'ssafe-areas), not both. - Dark mode in Konsta v5 is class-based (
@custom-variant dark (&:where(.dark, .dark *))in its CSS): toggledarkon<html>, setApp dark, and match native bars withSystemBars.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(orno-safe-areas-topetc.) 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/appbackButton.
Verification
npm run build && npx cap sync, run on iOS and Android.- Inspect
<html>/root:.k-iosor.k-materialclass present;ios:/material:utilities apply. - Navbar clears the Dynamic Island; Tabbar clears the home indicator and Android gesture bar (Android 15+ edge-to-edge).
- Toggle dark mode; components and status bar icons switch together.
- 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
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

