📋 محتويات الصفحة
📖 الوصف
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)
Ant Design
⭐مكتبة مكونات Enterprise (Enterprise UI Component Library)
Ark UI
مكتبة مكونات Headless (Headless UI Component Library)
Ark UI
مكتبة مكونات Headless (Headless UI Component Library)
Base UI
مكتبة مكونات headless من MUI (Headless UI Components from MUI)
Base UI
مكتبة مكونات headless من MUI (Headless UI Components from MUI)