MeDo

منشئ البطاقات بالذكاء الاصطناعي.

صِف ما تحتويه البطاقة ويُنشئ MeDo الحاوية كاملة — خانات للوسائط والرأس والمحتوى والتذييل، ارتفاع عند التمرير، صور مثبّتة عبر aspect-ratio، ارتفاعات متساوية داخل الشبكة، وحالة هيكلية مطابقة.

البطاقة
البطاقة

البطاقة عقد تخطيط، لا صندوق بحدود

كتابة الزوايا الدائرية والظل تستغرق دقيقة، لذا تُعامل البطاقات كأمر تافه. ما ينكسر فعلاً هو كل ما يحيط بها. بطاقة عنوانها سطران وجارتها أربعة أسطر، فلا تتحاذى التذييلات بعد ذلك. تصل صورة بنسبة غير متوقعة فتُعاد ترتيبة الشبكة بعد الرسم. يجعل أحدهم البطاقة كلها قابلة للنقر فيحتجز زر "حفظ" داخل الـ anchor، فينتج HTML غير صالح وعنصر تحكم لا يمكن الوصول إليه. هذه خصائص البطاقة داخل مجموعة، لا خصائص البطاقة وحدها، ولهذا فإن إنشاء الحاوية وقيد الوسائط ومحاذاة التذييل وحالة التحميل كوحدة واحدة أنفع من تنسيق div واحد بإتقان.

6 قالبًا

قوالب البطاقة التي يمكنك توليدها

كل قالب هو طلب حقيقي لا صورة. انسخه إلى أي محرّر ذكاء اصطناعي، أو شغّله في MeDo لتحصل على كود React و Tailwind مباشرة.

BasicSlots + Skeleton

Four-Slot Card With a Matching Skeleton

The container everything else extends. Generating the skeleton in the same pass is what keeps the two the same size six months later.

Create a card component with four optional slots: media at the top, a header with title and subtitle, a body for description text, and a footer for actions or metadata. White surface, 12px radius, 1px light grey border, 20px internal padding. Make the card a flex column with the body allowed to grow so the footer sits at the bottom and cards in a row stay equal height regardless of title wrapping. Lock the media to a 16:9 ratio with object-fit cover and explicit dimensions. Include a skeleton variant whose grey blocks match the real layout exactly — same media ratio, same line count, same footer height — so nothing shifts when data arrives.

جرّبه في MeDo
CommerceProduct Card

Image, Price and Add to Cart

The hardest card to get right because it needs a whole-card link and a nested button. Wrap the card in an anchor and the button becomes invalid markup and unreachable.

Create a product card: a 1:1 image with object-fit cover and a reserved box, an optional discount badge in the top-left, the product name over two lines with a line clamp, a price row with the current price and a struck-through original, a star rating with a review count, and an Add to cart button in the footer. Make the whole card navigate to the product page by putting the anchor on the product name and stretching it over the card with an absolutely positioned pseudo-element, then raise the cart button above it with a higher z-index so both targets work. Add an out-of-stock state that dims the image and swaps the button for a Notify me control.

جرّبه في MeDo
EditorialArticle Card

Cover Image, Headline and Byline

One headline wraps to two lines and its neighbor to four. Without a growing body the bylines end up on different baselines and the whole index looks unfinished.

Create an article card: a 16:9 cover image with a reserved aspect box, a category badge, a headline clamped to two lines, an excerpt clamped to three, and a footer row with an author avatar, author name, publish date and read time. Make it a flex column with the excerpt allowed to grow so bylines align across a row of cards with different headline lengths. Put the anchor on the headline and stretch it across the card so the accessible name is the headline rather than "read more". Add a featured variant that spans two grid columns with the media on the left and the text on the right.

جرّبه في MeDo
DashboardMetric Card

Stat Card With Delta and Sparkline

No media, all typography. The number is the component, so lock its width with tabular figures or the whole row twitches on every poll.

Create a metric card for a dashboard: a small uppercase label, a large numeric value using tabular figures so the width does not jitter as the number updates, a change indicator showing the delta with an arrow and a green or red tint, and an optional sparkline across the bottom. Never rely on color alone for direction — pair the tint with an arrow glyph and a visually hidden "up" or "down". Reserve the sparkline height even before data arrives. Include a loading variant that shows a shimmering block at the exact value height, and an empty state reading "No data yet" rather than a zero that looks like a real measurement.

جرّبه في MeDo
ConversionPricing Card

Plan Card With a Highlighted Tier

Three cards that must end on one line. If the highlighted tier gets a thicker border, compensate with padding or it will sit one pixel taller than its neighbors.

Create a pricing card: plan name, price with a billing period suffix, a one-line positioning sentence, a feature list with check icons, and a call-to-action button pinned to the bottom. Add a highlighted variant with a thicker border, a "Most popular" badge overlapping the top edge, and reduced internal padding so the extra border width does not make it taller than the adjacent cards. Make the card a flex column with the feature list growing, so buttons across three plans of different feature counts land on the same line. Keep the price in tabular figures and mark the currency and period as separate spans for annual and monthly toggling.

جرّبه في MeDo
InteractiveClickable Card

Whole-Card Link With Nested Controls

The pattern that fixes the most common card bug. One stretched anchor, real controls layered above it, no interactive element nested inside another.

Create a fully clickable card that stays valid HTML: put a single anchor on the card title and expand it over the whole card with an absolutely positioned ::after pseudo-element covering the container, rather than wrapping the card in an anchor. Give the container position relative and any nested control — a bookmark toggle, an overflow menu, a secondary link — a higher z-index plus position relative so it remains clickable. Drive the hover elevation from the container so hovering anywhere raises the card, and mirror it on focus-within so keyboard users see the same state. Skip the translate transform when prefers-reduced-motion is set and keep the shadow change.

جرّبه في MeDo

كيف تخصّص البطاقة الخاص بك

ثبّت aspect-ratio الوسائط

اطلب aspect-ratio صريحاً لمنطقة الصورة مع object-fit cover. بدون صندوق محجوز، تُعيد الصور ذات الأبعاد المتباينة تحجيم البطاقة بعد تحميلها، وهو ضرر مباشر على Cumulative Layout Shift وأبرز خلل مرئي في شبكة البطاقات.

ثبّت التذييل في الأسفل

حدّد أن البطاقة عمود flex مع السماح للمحتوى بالتمدد، لتتحاذى التذييلات عبر الصف حتى عندما تنكسر العناوين على أعداد أسطر مختلفة. صفوف الإجراءات غير المنتظمة هي أسرع طريقة لجعل شبكة نظيفة تبدو غير مكتملة.

اختر استراتيجية نقر واحدة

إما أن تكون البطاقة كلها رابطاً أو أن تكون العناصر داخلها روابط، وليس الاثنين معاً. لبطاقة قابلة للنقر بالكامل، اطلب anchor واحداً على العنوان ممتداً على البطاقة بعنصر زائف بموضع مطلق، فيبقى الاسم الميسَّر ذا معنى ويتوفر مجال لعناصر تحكم متداخلة فوقه.

اطلب الهيكل التحميلي مع البطاقة

اطلب نسخة تحميل تطابق كتلها الرمادية الأبعاد الحقيقية، بما في ذلك نسبة الوسائط وعدد الأسطر. الهيكل المبني بمقاس مختلف يفقد الغرض، لأن التخطيط سيقفز على أي حال لحظة وصول البيانات.

من يستخدم مكوّن البطاقة

شبكة منتجات التجارة الإلكترونية

صورة منتج مربعة، والاسم، والسعر، وصف التقييم، مع زر "أضف إلى السلة" في التذييل يعلو رابطاً يغطي البطاقة بأكملها نحو صفحة المنتج، فيعمل الهدفان دون تداخل.

فهرس مدونة أو موارد

صورة غلاف بنسبة 16:9، وشارة تصنيف، وعنوان ينكسر على سطرين، ومقتطف، وتذييل بالمؤلف ووقت القراءة يتحاذى عبر الصف مهما بلغ طول العناوين.

لوحة تحكم SaaS

بطاقات مؤشرات بلا وسائط على الإطلاق: تسمية، وقيمة كبيرة، ومؤشر تغيّر، ومخطط مصغّر، تُعرض كهياكل تحميلية عند الرسم الأول بينما يُنفَّذ الاستعلام.

مقارنة الأسعار أو الخطط

ثلاث بطاقات متساوية الارتفاع، إحداها مميّزة بحدود أعرض وشارة، تنتهي كل واحدة بزر دعوة لاتخاذ إجراء مثبّت في الأسفل بحيث تستقر الأزرار على سطر واحد.

أنماط البطاقة لمواقع مختلفة

المكوّن البطاقة نفسه، مُهيّأ لنوع الموقع الذي يُنشر عليه.

01 / 06

SaaS Dashboard Cards

Metric cards with no media at all, so the number carries the whole layout. Use tabular figures and reserve the value height, because a card grid fed by a polling query will otherwise reflow every few seconds. Borders beat shadows here — twelve elevated cards on one screen read as noise rather than hierarchy.

أنماط البطاقة وتنويعاته

اختر التنويعة التي تناسب بقية الصفحة، ثم ولّدها.

01 / 06

Bordered Card

A 1px border, no shadow. The right default for dense interfaces — tables, dashboards, settings panels — where every card needs an edge but none of them should appear to float. Keep the border one step darker than the divider color or the card dissolves into the page.

البطاقة في React و Next.js و Vue و Svelte

React و Next.js و Vue 3 و SvelteKit و Astro أو HTML صِرف — المكوّن البطاقة نفسه بست طرق للإضافة.

01 / 06

React Card

Expose the slots as subcomponents — Card.Header, Card.Body, Card.Footer — rather than as props, so a metric card can omit the media without passing null. No state means no hooks, which is what lets you render sixty of them in a grid.

src/components/Card.tsx

export function Card({ className, ...props }) {
  return (
    <div
      className={cn(
        'flex flex-col rounded-xl border bg-white p-5',
        'transition-shadow hover:shadow-lg',
        className
      )}
      {...props}
    />
  )
}
Card.Footer = ({ children }) => <div className="mt-auto pt-4">{children}</div>

كيف تضيف البطاقة إلى مشروعك

أربع خطوات، من اختيار قالب البطاقة إلى إطلاقه في الإنتاج.

01~30s

Pick a Card Template

Scan the six templates and start from the content you are displaying — product with a cart button, article with a byline, metric with a delta, or pricing tier.

02~10s

Copy the Prompt

Take the prompt into MeDo, Lovable, Bolt, v0 or Cursor. Say what grid the card lives in before you run it, because the column count is what determines the media ratio and the equal-height rules.

03~1min

Generate and Refine

You get React + Tailwind back with a live preview. Follow up in plain English — "clamp the title to two lines", "swap the shadow for a border", "add the skeleton" — instead of editing the flex utilities by hand.

04~2min

Drop It Into the Grid

Render it inside a CSS grid so rows stretch to match, then check a row where one title wraps and another does not. That is the case that reveals whether the footer is actually pinned.

أسئلة شائعة حول البطاقة

كيف أُنشئ مكوّن بطاقة بالذكاء الاصطناعي؟

صِف ما تحتويه البطاقة وكيف ستُستخدم، مثل "بطاقة منتج بصورة مربعة وعنوان وسعر وتذييل للإضافة إلى السلة، في شبكة من ثلاثة أعمدة". يُنشئ MeDo بنية الخانات وقيد الوسائط وحالة التمرير معاً. وذكر الشبكة مهم، لأنها ما يحدد قواعد تساوي الارتفاع وقواعد aspect-ratio.

ما أجزاء مكوّن البطاقة؟

أربع مناطق تغطي كل الحالات تقريباً: منطقة وسائط اختيارية، ورأس يحتوي العنوان وأي تسمية مساندة، ومحتوى للمادة الوصفية، وتذييل للإجراءات أو البيانات الوصفية. التعامل معها كخانات اختيارية بدل ترميز إلزامي يجعل مكوّناً واحداً يخدم بطاقة منتج وبطاقة مقال وبطاقة مؤشر دون نسخة مخصصة لكل حالة.

هل يمكن أن تكون البطاقة كاملة قابلة للنقر؟

نعم، لكن لا تُغلّف البطاقة بـ anchor إذا كانت تحتوي أزراراً أو روابط أخرى، فتداخل العناصر التفاعلية HTML غير صالح وتتعامل معه المتصفحات بصورة غير متوقعة. ضع الـ anchor على العنوان وامدده على البطاقة بعنصر زائف بموضع مطلق، ثم ارفع أي عنصر تحكم متداخل فوقه بقيمة z-index أعلى.

كيف أجعل البطاقات بالارتفاع نفسه داخل شبكة؟

استخدم CSS grid، فهو يمدّ عناصر الصف أصلاً ليتساووا، واجعل البطاقة نفسها عمود flex حتى يدفع المحتوى المتمدد تذييلها إلى الأسفل. الارتفاعات الثابتة هي الحل الخاطئ، لأنها تقتطع المحتوى بمجرد أن ينكسر عنوان على سطر إضافي.

هل تستخدم البطاقات ظلاً أم حدوداً؟

الحدود أوضح في الواجهات الكثيفة مثل لوحات التحكم والجداول، حيث تُنتج الظلال الكثيرة تشويشاً بصرياً. أما الظل فيناسب تخطيطات التسويق المتباعدة حيث تحتاج البطاقات إلى الارتفاع عن الخلفية. اختر واحداً افتراضياً واحفظ الآخر لنسخة مرتفعة أو مميّزة بدل خلطهما في المستوى نفسه.

هل تحتاج البطاقة إلى هيكل تحميلي؟

أي بطاقة تعتمد على طلب شبكي تستفيد منه، لأن الهيكل المُقاس على المحتوى الحقيقي يمنع إعادة ترتيب الصفحة عند وصول البيانات. اطلب من MeDo الهيكل في الموجه نفسه الذي تطلب فيه البطاقة، فيتشاركان الأبعاد بحكم البناء، وهو أمر يصعب الحفاظ عليه عند كتابتهما منفصلين.