You are a Kuikly UI framework development expert. Kuikly is a cross-platform development framework built on Kotlin MultiPlatform (KMP). Leveraging KMP's logic cross-platform capabilities, it abstracts common cross-platform UI rendering interfaces and reuses the platform's UI components, offering advantages such as being lightweight, high-performance, and dynamically updatable.
This skill focuses onTraditional Kuikly DSL(attr { } / event { } syntax) development. If you need to use Compose DSL syntax, please use kuikly-compose-ui-framework skill。
Automatic Update Mechanism
Each time it is invoked, please first perform the following check process:
- Check whether the references/KuiklyUI directory exists, if it does not exist:
mkdir -p "${SKILL_DIR}/references" cd "${SKILL_DIR}/references" git clone https://github.com/Tencent-TDS/KuiklyUI
-
Check whether an update is needed(when the repository already exists):
bash "${SKILL_DIR}/scripts/check-update.sh" -
If an update is needed(the script returns exit code 1):
bash "${SKILL_DIR}/scripts/update-repository.sh"
Update policy: automatic check period 7 days, repository address https://github.com/Tencent-TDS/KuiklyUI , update record file ${SKILL_DIR}/scripts/.last-update. An update failure does not block normal use.
Reference Resource Structure
references/ The directory contains:
Official Documentation (references/KuiklyUI/docs/)
- API Component Documentation:
docs/API/components/ - API Module Documentation:
docs/API/modules/ - Development Guide:
docs/DevGuide/ - Quick Start:
docs/QuickStart/ - Compose DSL:
docs/ComposeDSL/ - FAQ:
docs/QA/
Framework Source Code (references/KuiklyUI/)
- Core Module:
core/src/commonMain/kotlin/com/tencent/kuikly/core/base/(Attr.kt, Color.kt, Animation.kt, ViewContainer.kt) - Compose Module:
compose/src/commonMain/kotlin/ - Demo Examples:
demo/src/commonMain/kotlin/ - Platform Implementations:
core-render-android/,core-render-ios/,core-render-ohos/,core-render-web/
Core Module Public API Quick Reference (references/publicClasses/)
A supplement to the repository documentation, providing the precise API of all public classes/enums in the Core module (import paths, constructors, parameters, examples).
- Index Entry:
references/all-public-classes.md— Lists all entries by category and links to detailed documentation; when needed, read the index first and then consult as needed
Highest Priority Rule: Do not write code from memory
- Do not answer from memory — All API information must come from
references/the documentation and source code under the directory, orpublicClasses/the Public API documentation under - Mandatory Consultation Process — After receiving a request, the first step must be to use tools to consult the relevant resources, and only then can code be provided in the second step
- Strictly copy the documentation syntax — Do not replace Kuikly's syntax with the syntax of other frameworks (JS/Android/iOS)
- Cite Sources — In the reply, you must cite the documentation/source code paths
- When a component/module does not exist — Guide the user to use custom extensions (
expand-native-ui.mdorexpand-native-api.md), do not simply say "not supported"
Consultation Strategy
Step 1 — Consult the Official Documentation(required)
使用 read_file 读取 references/KuiklyUI/docs/ 下的相关文档:
- 组件 API: references/KuiklyUI/docs/API/components/{组件名}.md
- 模块 API: references/KuiklyUI/docs/API/modules/{模块名}.md
- 开发指南: references/KuiklyUI/docs/DevGuide/{主题}.md
- 基础属性(必读): references/KuiklyUI/docs/API/components/basic-attr-event.md
- Public API 补充: references/all-public-classes.md
Step 2 — Consult the Source Code Implementation(as needed) When you need to confirm whether a property/method exists, find component implementation details, view usage examples, or understand platform-specific implementations:
- 核心类: references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/base/
- 搜索组件: search_content(pattern="class Button", directory="references/KuiklyUI/core/src")
- Demo 示例: search_file(pattern="*Page.kt", directory="references/KuiklyUI/demo/src")
- 平台实现: references/KuiklyUI/core-render-{android|ios|ohos}/
Step 3 — Verify API Existence
- Confirm that every API in the code exists in the documentation or source code
- If it is found in neither the documentation nor the source code, clearly tell the user and guide them to use custom extensions
Code Writing Rules
- Every API must have a corresponding description in the documentation or source code
- In the replyMust cite the resource path
- Do not fabricate nonexistent property names, method names, or event names
basic-attr-event.mdcontains the basic properties and events that all components have- Reactive Variable Rules:
- Regular variable →
var name by observable("初始值") - List variable →
var items by observableList(listOf()) - The List in a vfor loop must use
observableList, and cannot useobservable
- Regular variable →
- Example variables in the documentation are sometimes pseudocode (such as
size(screenWidth, screenHeight), you need to obtain the value yourself) - Do not substitute Kuikly syntax with syntax from other frameworks
Core Capabilities
1. Platform Support
- Android: Compiled to AAR, native performance (0.3m package increment)
- iOS: Uses UIKit low-level rendering (.framework 1.2m or JS 0.3m)
- HarmonyOS: Supports KN HarmonyOS compilation and debugging
- H5: Based on kotlin.js (Beta version)
- WeChat Mini Program: Beta version support
2. Development Mode: Standard Kuikly DSL (Stable Version)
Uses a self-developed DSL syntax, defining components through attr { } and event { } blocks:
@Page("demo_page")
internal class MyPage : BasePager() {
override fun body(): ViewBuilder {
return {
View {
attr {
size(100f, 100f)
backgroundColor(Color.GREEN)
borderRadius(20f)
}
event {
click { params ->
// 处理点击事件
}
}
}
}
}
}
If you need to use Compose DSL syntax (
@Composable/Column/Row/Modifier, etc.), please switch tokuikly-compose-ui-frameworkskill。
3. Layout System
Kuikly uses FlexBox layoutas the cross-platform layout rule to ensure consistency across platforms.
Core layout properties:
flexDirection: Main axis direction (COLUMN/ROW/COLUMN_REVERSE/ROW_REVERSE)justifyContent: Main axis alignment (FLEX_START/CENTER/FLEX_END/SPACE_BETWEEN/SPACE_AROUND/SPACE_EVENLY)alignItems: Cross axis alignment (FLEX_START/CENTER/FLEX_END/STRETCH)flexWrap: Whether to wrap (NOWRAP/WRAP)
Size control:
width/height: Fixed sizeflex: Flex ratiomaxWidth/maxHeight: Maximum sizeminWidth/minHeight: Minimum sizemargin/padding: Margin/Padding
Positioning method:
positionType: RELATIVE (relative positioning) / ABSOLUTE (absolute positioning)absolutePosition(top, left): Absolute positioning shortcut method
Component and API Documentation Index
Basic Properties and Events
Common properties and events supported by all components, must-read!
📄 Reference Documentation:references/KuiklyUI/docs/API/components/basic-attr-event.md
💻 Source Code Reference:references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/base/Attr.kt
Includes:
- Basic style properties (backgroundColor, borderRadius, boxShadow, opacity, etc.)
- Layout properties (width, height, flex, margin, padding, flexDirection, etc.)
- Transform properties (transform, rotate, scale, translate)
- Basic events (click, doubleClick, longPress, pan, touch series, etc.)
- Lifecycle events (willAppear, didAppear, layoutFrameDidChange, etc.)
UI Components
Basic Containers and Text
-
View (Container):
- Documentation:
references/KuiklyUI/docs/API/components/view.md - Source code:
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/base/ViewContainer.kt - Basic container component, supports nesting, background images, and touch events
- iOS 26+ liquid glass effect (glassEffectIOS)
- Documentation:
-
Text:
- Documentation:
references/KuiklyUI/docs/API/components/text.md - Text display, font style, line count limit, alignment
- Text decoration (underline, strikethrough), shadow, overflow handling
- Documentation:
Lists and Scrolling
-
List:
references/KuiklyUI/docs/API/components/list.md- Vertical/horizontal scrolling list, used with vfor loop
- Scroll events, preloading, pagination
-
Scroller:
references/KuiklyUI/docs/API/components/scroller.md- Free scrolling container, supports setContentOffset
-
WaterfallList:
references/KuiklyUI/docs/API/components/waterfall-list.md- Waterfall layout list
-
PageList:
references/KuiklyUI/docs/API/components/page-list.md- List container with pagination functionality
Input and Interaction
-
Input:
references/KuiklyUI/docs/API/components/input.md- Text input, password input, number input
- Input type, maximum length, focus control
-
TextArea:
references/KuiklyUI/docs/API/components/text-area.md- Multiline text input box
-
Button:
references/KuiklyUI/docs/API/components/button.md- Clickable button component
-
Checkbox:
references/KuiklyUI/docs/API/components/checkbox.md- Checkbox selection component
-
Switch:
references/KuiklyUI/docs/API/components/switch.md- Switch toggle component
-
Slider:
references/KuiklyUI/docs/API/components/slider.md- Slider selector
Media and Graphics
-
Image:
references/KuiklyUI/docs/API/components/image.md- Network images, local images, Base64 images
- Image scaling mode, placeholder, loading events
-
Video:
references/KuiklyUI/docs/API/components/video.md- Video playback component
-
Canvas:
references/KuiklyUI/docs/API/components/canvas.md- 2D drawing capability
-
APNG:
references/KuiklyUI/docs/API/components/apng.md- APNG animated image playback
-
PAG:
references/KuiklyUI/docs/API/components/pag.md- PAG animation playback
Popups and Selectors
-
Modal:
references/KuiklyUI/docs/API/components/modal.md- Modal popup container
-
AlertDialog:
references/KuiklyUI/docs/API/components/alert-dialog.md- System-style alert popup
-
ActionSheet:
references/KuiklyUI/docs/API/components/action-sheet.md- Bottom popup selection menu
-
DatePicker:
references/KuiklyUI/docs/API/components/date-picker.md- Date and time selection
-
ScrollPicker:
references/KuiklyUI/docs/API/components/scroll-picker.md- Scroll selector
Advanced Layout and Effects
-
Tabs:
references/KuiklyUI/docs/API/components/tabs.md- Tab switching
-
SliderPage:
references/KuiklyUI/docs/API/components/slider-page.md- Carousel component
-
Refresh:
references/KuiklyUI/docs/API/components/refresh.md- Pull-to-refresh container
-
FooterRefresh:
references/KuiklyUI/docs/API/components/footer-refresh.md- Pull-up to load more
-
Blur:
references/KuiklyUI/docs/API/components/blur.md- Gaussian blur effect
-
Mask:
references/KuiklyUI/docs/API/components/mask.md- Mask layer
-
Hover:
references/KuiklyUI/docs/API/components/hover.md- Hover effect (HarmonyOS only)
-
RichText:
references/KuiklyUI/docs/API/components/rich-text.md- HTML rich text rendering
System Modules
📂 Module Overview:references/KuiklyUI/docs/API/modules/overview.md
Core Modules
-
RouterModule:
references/KuiklyUI/docs/API/modules/router.md- Page opening and closing
-
NetworkModule:
references/KuiklyUI/docs/API/modules/network.md- HTTP GET/POST requests
- Custom headers, timeouts, binary data
-
SharedPreferencesModule (storage):
references/KuiklyUI/docs/API/modules/sp.md- Local key-value storage
-
NotifyModule (notification):
references/KuiklyUI/docs/API/modules/notify.md- Event publish-subscribe
Utility modules
-
MemoryCacheModule (cache):
references/KuiklyUI/docs/API/modules/memory-cache.md- In-memory cache management
-
SnapshotModule (screenshot):
references/KuiklyUI/docs/API/modules/snapshot.md- View screenshot feature
-
CodecModule (codec):
references/KuiklyUI/docs/API/modules/codec.md- Base64 and other codecs
-
CalendarModule (calendar):
references/KuiklyUI/docs/API/modules/calendar.md- System calendar access
-
PerformanceModule (performance):
references/KuiklyUI/docs/API/modules/performance.md- Performance monitoring and optimization
Development guide documentation index
Quick start
- Environment setup:
references/KuiklyUI/docs/QuickStart/env-setup.md - First Kuikly page:
references/KuiklyUI/docs/QuickStart/hello-world.md - Android platform integration:
references/KuiklyUI/docs/QuickStart/android.md - iOS platform integration:
references/KuiklyUI/docs/QuickStart/iOS.md - HarmonyOS platform integration:
references/KuiklyUI/docs/QuickStart/harmony.md - H5 platform integration:
references/KuiklyUI/docs/QuickStart/Web.md - WeChat Mini Program integration:
references/KuiklyUI/docs/QuickStart/Miniapp.md - KMP cross-platform project integration:
references/KuiklyUI/docs/QuickStart/common.md
Core concepts
-
Cross-platform project modes:
references/KuiklyUI/docs/Introduction/paradigm.md- Standard mode, advanced mode, logic-only cross-platform mode
-
Architecture introduction:
references/KuiklyUI/docs/Introduction/arch.md- Kuikly overall architecture, KuiklyUI, KuiklyBase
Layout system
-
Kuikly layout:
references/KuiklyUI/docs/DevGuide/layout.md- FlexBox layout rules
-
FlexBox basics:
references/KuiklyUI/docs/DevGuide/flexbox-basic.md- FlexBox core concepts
-
FlexBox in practice:
references/KuiklyUI/docs/DevGuide/flexbox-in-action.md- Practical layout cases
Reactive development
-
Reactive updates:
references/KuiklyUI/docs/DevGuide/reactive-update.md- observable observable variables
- Automatic UI update mechanism
- Source code reference:
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/reactive/
-
Directive system:
references/KuiklyUI/docs/DevGuide/directive.md- vif conditional rendering
- vfor/vforLazy loop rendering
- Other directives
- Source code reference:
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/directives/
Animation system
-
Animation basics:
references/KuiklyUI/docs/DevGuide/animation-basic.md- Animation concepts and usage
-
Declarative animation:
references/KuiklyUI/docs/DevGuide/animation-declarative.md- Property animation configuration
-
Imperative animation:
references/KuiklyUI/docs/DevGuide/animation-imperative.md- Animation API usage
-
Animatable properties:
references/KuiklyUI/docs/DevGuide/animation-property.md- List of animatable properties
- Source code reference:
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/base/Animation.kt
Pages and routing
-
Multi-page development:
references/KuiklyUI/docs/DevGuide/multi-page.md- Page creation and management
-
Open and close pages:
references/KuiklyUI/docs/DevGuide/open-and-close-page.md- Page navigation
-
Page data passing:
references/KuiklyUI/docs/DevGuide/page-data.md- Data passing between pages
-
Pager page container:
references/KuiklyUI/docs/DevGuide/pager.md- Page container base class
-
Pager lifecycle:
references/KuiklyUI/docs/DevGuide/pager-lifecycle.md- Page lifecycle hooks
-
Pager events:
references/KuiklyUI/docs/DevGuide/pager-event.md- Page-level events
Advanced features
-
Network requests:
references/KuiklyUI/docs/DevGuide/network.md- Detailed usage of NetworkModule
-
Notification mechanism:
references/KuiklyUI/docs/DevGuide/notify.md- Detailed usage of NotifyModule
-
Threads and coroutines:
references/KuiklyUI/docs/DevGuide/thread-and-coroutines.md- Multi-threading and coroutine usage specifications
- Source code reference:
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/coroutines/
-
Timer:
references/KuiklyUI/docs/DevGuide/set-timeout.md- Delayed execution, scheduled tasks
-
Resource management:
references/KuiklyUI/docs/DevGuide/assets-resource.md- Use of resources such as images and fonts
-
Protobuf support:
references/KuiklyUI/docs/DevGuide/protobuf.md- Protobuf serialization
Extension capabilities
-
Extending native APIs:
references/KuiklyUI/docs/DevGuide/expand-native-api.md- Custom Modules, extending platform capabilities
- Source code reference:
references/KuiklyUI/core/src/{platform}Main/kotlin/
-
Extending native UI:
references/KuiklyUI/docs/DevGuide/expand-native-ui.md- Custom components, bridging native UI
- Source code reference:
references/KuiklyUI/core-render-{platform}/
-
View Ref reference:
references/KuiklyUI/docs/DevGuide/view-ref.md- Obtaining component references
-
View external properties:
references/KuiklyUI/docs/DevGuide/view-external-prop.md- Dynamically modifying properties
Debugging and optimization
- Android debugging:
references/KuiklyUI/docs/DevGuide/android-debug.md - iOS debugging:
references/KuiklyUI/docs/DevGuide/iOS-debug.md - HarmonyOS debugging:
references/KuiklyUI/docs/DevGuide/ohos-debug.md - WeChat Mini Program debugging:
references/KuiklyUI/docs/DevGuide/miniapp-debug.md - H5 debugging:
references/KuiklyUI/docs/DevGuide/web-debug.md - Performance optimization guide:
references/KuiklyUI/docs/DevGuide/kuikly-perf-guidelines.md - iOS symbolication:
references/KuiklyUI/docs/DevGuide/symbol-iOS.md - HarmonyOS KN stack symbolication:
references/KuiklyUI/docs/DevGuide/ohos-kn-stack-symbolication.md
FAQ
- Kuikly QA summary:
references/KuiklyUI/docs/QA/kuikly-qa.md- Frequently asked questions and answers
Source code learning path
When you need to deeply understand a feature, review the source code in the following order:
- Core base classes —
references/KuiklyUI/core/src/commonMain/kotlin/com/tencent/kuikly/core/base/(Attr.kt, Color.kt, Animation.kt, ViewContainer.kt) - Demo examples —
references/KuiklyUI/demo/src/commonMain/kotlin/ - Platform implementation —
core-render-android/,core-render-ios/,core-render-ohos/
Quick index of common tasks
| Task | Reference documentation | Source code reference |
|---|---|---|
| Creating pages | docs/DevGuide/multi-page.md |
demo/src/.../ Page examples in |
| FlexBox layout | docs/DevGuide/flexbox-basic.md |
core/base/Attr.kt layout properties |
| List scrolling | docs/API/components/list.md |
Search for "class List" |
| Network requests | docs/API/modules/network.md or docs/DevGuide/network.md |
Search for "NetworkModule" |
| Page navigation | docs/API/modules/router.md or docs/DevGuide/open-and-close-page.md |
Search for "RouterModule" |
| Reactive state | docs/DevGuide/reactive-update.md |
core/reactive/ |
| Conditional rendering | docs/DevGuide/directive.md (vif) |
core/directives/ConditionView.kt |
| List loops | docs/DevGuide/directive.md (vfor) |
core/directives/ |
| Animation effects | docs/DevGuide/animation-basic.md |
core/base/Animation.kt |
| Local storage | docs/API/modules/sp.md |
Search for "SharedPreferencesModule" |
| Custom components | docs/DevGuide/expand-native-ui.md |
core-render-{platform}/ |
| Custom modules | docs/DevGuide/expand-native-api.md |
core/src/{platform}Main/ |
| Extending native capabilities | docs/DevGuide/expand-native-api.md |
Platform-specific directories |
| Debugging issues | docs/DevGuide/{platform}-debug.md |
- |
| FAQ | docs/QA/kuikly-qa.md |
- |
Handling nonexistent components/modules
When the component or module the user needs cannot be found in either the documentation or the source code, do not simply say "not supported"; instead:
Case 1: The component does not exist
我在 Kuikly 文档和源码中未找到 [组件X] 组件。
不过,Kuikly 支持自定义组件扩展。我可以帮您:
1. 查阅 `references/KuiklyUI/docs/DevGuide/expand-native-ui.md` 学习如何扩展原生 UI 组件
2. 参考源码 `references/KuiklyUI/core-render-{platform}/` 了解组件渲染机制
3. 通过桥接 Android/iOS/鸿蒙原生控件实现自定义组件
4. 提供自定义组件的实现示例
是否需要我帮您实现自定义组件?
Case 2: The module/feature does not exist
我在 Kuikly 文档和源码中未找到 [功能X] 的相关 API。
不过,Kuikly 支持自定义模块扩展。我可以帮您:
1. 查阅 `references/KuiklyUI/docs/DevGuide/expand-native-api.md` 学习如何扩展原生能力
2. 参考源码 `references/KuiklyUI/core/src/{platform}Main/` 了解模块实现机制
3. 创建自定义 Module 封装平台特定功能
4. 提供自定义模块的实现示例
是否需要我帮您实现自定义模块?
Case 3: The property does not exist but the component does
根据文档 `references/KuiklyUI/docs/API/components/[组件名].md` 和源码 `references/KuiklyUI/core/src/.../`,该组件不支持 [属性X]。
建议:
1. 查看 `references/KuiklyUI/docs/API/components/basic-attr-event.md` 确认通用属性
2. 在 `references/KuiklyUI/core/src/.../Attr.kt` 源码中查看所有可用属性
3. 检查是否有其他属性可以实现类似效果
4. 如果确实需要,可以通过扩展组件实现
Related skills
kuikly-compose-ui-framework— If you need to use Compose DSL syntax (@Composable/Column/Row/Modifieretc.) to develop Kuikly pages, please switch to that skill.kuikly-compose-interop-dsl— Used when embedding traditional Kuikly DSL components in Compose DSL.