📋 محتويات الصفحة
📖 الوصف
Styled-Components هي مكتبة CSS-in-JS تسمح بكتابة CSS مباشرة داخل ملفات JavaScript/TypeScript. تستخدم tagged template literals لإنشاء مكونات React مع scoped styles. كل مُكوّن يحمل الـ styles الخاصة به فقط. تُستخدم بشكل رئيسي مع React. توفر dynamic styles بسهولة، theming system، وautomatic critical C...
🎯 يستخدم في
مجالات استخدام هذه الأداة
React applications
Styled components مع dynamic props
Theme systems
Component-scoped CSS
Applications تحتاج لـ CSS-in-JS
✨ المميزات
أبرز مميزات هذه الأداة
CSS داخل JavaScript/TypeScript
Component-scoped styles تلقائياً
Dynamic styles عبر props
Theming system قوي
Automatic critical CSS
Server-side rendering
TypeScript support
Large community
⚠️ العيوب
نقاط يجب مراعاتها
Runtime overhead (يُجمع في وقت التشغيل)
ملفات كبيرة مع الـ styles
Performance أقل من zero-runtime alternatives
Bundle size أكبر من Vanilla Extract
Limited framework support (React-focused)
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
import styled, { css, keyframes } from 'styled-components';
// Basic styled component
const Button = styled.button`
background: #3498db;
color: white;
padding: 12px 24px;
border: none;
border-radius: 4px;
cursor: pointer;
&:hover {
background: #2980b9;
}
`;
// Dynamic styles via props
const Card = styled.div`
padding: ${(props) => props.padding || '16px'};
background: ${(props) => props.primary ? '#3498db' : '#f0f0f0'};
border-radius: 8px;
${(props) => props.highlighted && css`
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
transform: translateY(-2px);
`}
`;
// Animations
const fadeIn = keyframes`
from { opacity: 0; }
to { opacity: 1; }
`;
const Modal = styled.div`
animation: ${fadeIn} 0.3s ease-in;
padding: 24px;
`;
// Theme
import { ThemeProvider } from 'styled-components';
const theme = {
colors: {
primary: '#3498db',
secondary: '#2ecc71',
},
};
const ThemedButton = styled.button`
background: ${(props) => props.theme.colors.primary};
color: white;
`;
function App() {
return (
<ThemeProvider theme={theme}>
<ThemedButton>زر مع الثيم</ThemedButton>
</ThemeProvider>
);
}
📚 أدوات أخرى في Styling
قد يعجبك أيضاً
Bootstrap
⭐إطار عمل CSS جاهز (CSS Component Framework)
CSS Modules
⭐نهج scoped CSS (Scoped CSS Methodology)
CSS-in-JS
⭐نهج CSS في JavaScript (CSS-in-JS Concept)
Emotion
⭐مكتبة CSS-in-JS مرنة (Flexible CSS-in-JS Library)
Less
معالج CSS (CSS Preprocessor)
Linaria
مكتبة CSS-in-JS بدون runtime (Zero-Runtime CSS-in-JS)