Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Dioxus Element Plug
Element UI theme-chalk components for Dioxus applications with built-in SCSS support.
This crate provides a set of UI components styled with the popular Element UI theme-chalk CSS framework, designed specifically for use with the Dioxus framework. Hosted on GitHub: pauljohn21/dioxus-element-plug
Features
- 🎨 Complete Element UI styling - All components use authentic theme-chalk CSS
- 🦀 Rust-native components - Type-safe components built for Dioxus 0.7
- 📦 Ready to use - Components work out of the box with proper styling
- 🎯 Consistent API - Intuitive props and events matching Dioxus patterns
- 📱 Responsive design - Mobile-friendly components with flexible grid system
- 🔧 Active Development - Regular updates and community contributions
- 🎨 SCSS Support - Built-in SCSS compilation and theme customization
Quick Start
🎉 最简单的开始方式:只需 5 分钟就能创建运行的应用!
完整的端到端示例,请看 SIMPLE_START.md。
1. Add to your Cargo.toml
For production use:
[]
= { = "0.7", = ["web"] }
= "0.1.2"
Or use directly from GitHub:
= { = "https://github.com/pauljohn21/dioxus-element-plug.git" }
2. Add CSS to Your Application
Option A: Pre-compiled CSS (Recommended)
或者使用 Dioxus 组件方式(在 Rust 代码中动态引入):
Link
你也可以指定特定版本以确保稳定性:
Link
Option B: Custom SCSS with Manganis
For custom theming with manganis:
use asset;
static STYLES: Asset = asset!;
See Usage Guide for detailed instructions on both approaches.
查看 examples/with-scss-asset/ 示例了解完整用法。
关于 Dioxus 0.7 的样式支持说明:
- 🎉 Dioxus 0.7 支持内置 SCSS 编译 (通过 manganis asset 宏)
- 传统的外部 Sass 编译器方式仍然可用
- 两种方式都支持,开发者可以根据项目需求选择
3. Add CSS to your HTML
Add this to your index.html:
4. Use the components
use *;
use *;
Available Components
Layout
Container- Main container wrapperHeader- Page headerAside- SidebarMain- Main content areaFooter- Page footerRow/Col- Grid system
Form Controls
Button- Various button styles and sizesInput- Text inputs with validationSearchInput- Search input with iconPasswordInput- Password input with toggleForm- Form wrapper with layout optionsFormItem- Individual form fields with validationSelect- Dropdown selectionCheckbox/Radio- Boolean selection controlsSlider- Range input with tooltip
Card & Container Components
Card- Content container with shadow optionsPanel- Collapsible content panelsBox- Flexible box container with styling optionsAccordion- Collapsible section groups
Alert & Notification
Alert- Important information displayCallout- Prominent information boxesNotification- Toast-style temporary messagesTooltip- Contextual help information
Data Display
Table- Feature-rich data tables with sorting and selectionDataList- Flexible list component with custom templates
Component Examples
Buttons
use *;
rsx!
Input
use *;
rsx!
Layout Grid
use *;
rsx!
Forms
use *;
rsx!
Alerts
use *;
rsx!
Cards
use *;
rsx!
Data Tables
use *;
use json;
let columns = vec!;
let data = vec!;
rsx!
Building CSS
The theme CSS needs to be compiled from SCSS:
Prerequisites
- Node.js 16+
- npm or yarn
Setup and Build
# Setup (installs sass compiler)
# Build CSS
# Watch for changes during development
# Full build (Rust + CSS)
Development
Project Structure
dioxus-theme-chalk/
├── src/ # Rust component library
│ ├── components/ # UI components
│ └── theme.rs # Theme constants
├── build.rs # Build script
├── Cargo.toml # Rust dependencies
├── Makefile # Build automation
├── README.md # Documentation
└── example/ # Example app (coming soon)
Working with SCSS
The original SCSS files are in the parent src/ directory. The Makefile compiles them to the dist/ directory.
To watch for changes while developing:
# Terminal 1: Watch Rust code
# Terminal 2: Watch SCSS changes
Theming
This library uses the exact same CSS classes and variables as Element UI. You can customize the theme by:
- Override CSS variables in your custom CSS
- Modify the SCSS source before building
- Use custom classes via the
classprop on components
CSS Variables
Key variables you can override:
}
License
MIT License - see LICENSE file for details.
Contributing
We welcome contributions from the community! Please feel free to submit issues and pull requests on our GitHub repository.
Development Setup
- Fork the repository on GitHub
- Clone your fork:
- Create a feature branch:
- Make your changes and test locally
- Commit with a clear message:
- Push and create a Pull Request on GitHub
GitHub Workflow
- Issues: Report bugs and feature requests here
- Pull Requests: Submit improvements here
- Discussions: Join conversations here
We use conventional commit messages and semantic versioning. Please ensure your code follows the existing style and includes appropriate tests.
Credits
- Element UI - Original design system and theme-chalk CSS
- Dioxus - React-like framework for Rust
- GitHub Contributors - Open source community
License
MIT License - see LICENSE file for details.
Star History
If you find this project helpful, please consider giving it a ⭐ on GitHub!
Ready to level up your Dioxus apps with beautiful Element UI styling? Start building today! 🚀
Project Status
This project is actively maintained on GitHub. Check out our:
Join the Community
Together, we're building the future of Dioxus UI development! 🎉