📋 محتويات الصفحة
📖 الوصف
Mantine هي مكتبة مكونات React حديثة مع أكثر من 100 مكون قابل للتخصيص. تتميز بـ hooks مدمجة، نظام theme مرن، و TypeScript support كامل. تُقدم تجربة تطوير ممتازة مع documentation شاملة. Mantine 7 أحدث إصدار يستخدم CSS modules بدلاً من emotion للأداء الأفضل. يوفر أكثر من 50 hook مدمجة، مكونات متقدمة، ...
🎯 يستخدم في
مجالات استخدام هذه الأداة
React applications حديثة
Applications تحتاج مكونات جاهزة
Projects تحتاج hooks مدمجة
Customizable UI libraries
Projects تحتاج TypeScript
✨ المميزات
أبرز مميزات هذه الأداة
أكثر من 100 مكون
50+ hook مدمجة (useForm
useDisclosure
useMediaQuery)
TypeScript support ممتاز
CSS Modules (Mantine 7)
Dark/Light theme تلقائي
Hooks للـ forms
notifications
modals
إلخ
Rich text editor مدمج
Charts مدمج
Performance محسّن
⚠️ العيوب
نقاط يجب مراعاتها
جديد نسبياً (مقارنة بـ MUI)
أقل adoption من MUI
بعض المكونات قد تكون معقدة
Migration من v6 إلى v7 قد يكون صعباً
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
import { MantineProvider, Button, TextInput, Paper, Text, Stack } from '@mantine/core';
import { useForm, useDisclosure } from '@mantine/form';
import { notifications } from '@mantine/notifications';
function App() {
const form = useForm({
initialValues: {
email: '',
password: '',
},
validate: {
email: (value) => (/^\S+@\S+$/.test(value) ? null : 'بريد غير صالح'),
password: (value) => (value.length < 6 ? 'كلمة المرور قصيرة جداً' : null),
},
});
const handleSubmit = (values) => {
notifications.show({
title: 'نجاح',
message: 'تم تسجيل الدخول بنجاح',
color: 'green',
});
};
return (
<MantineProvider>
<Paper p="xl" shadow="md" maw={400}>
<form onSubmit={form.onSubmit(handleSubmit)}>
<Stack>
<TextInput
label="البريد الإلكتروني"
placeholder="email@example.com"
{...form.getInputProps('email')}
/>
<TextInput
label="كلمة المرور"
type="password"
{...form.getInputProps('password')}
/>
<Button type="submit" fullWidth>
تسجيل الدخول
</Button>
</Stack>
</form>
</Paper>
</MantineProvider>
);
}
// Hooks
function Modal() {
const [opened, { open, close }] = useDisclosure(false);
return (
<>
<Button onClick={open}>افتح</Button>
<Modal opened={opened} onClose={close} title="عنوان">
محتوى
</Modal>
</>
);
}
📚 أدوات أخرى في UI-Libraries
قد يعجبك أيضاً
Ant Design
⭐مكتبة مكونات Enterprise (Enterprise UI Component Library)
Ark UI
مكتبة مكونات Headless (Headless UI Component Library)
Base UI
مكتبة مكونات headless من MUI (Headless UI Components from MUI)
Chakra UI
⭐مكتبة مكونات واجهة بسيطة (Accessible UI Component Library)
DaisyUI
⭐مكتبة مكونات قائمة على utility classes (Component Class Library)
Fluent UI
⭐مكتبة مكونات Microsoft (Microsoft Design System)