{
  "name": "stepkit-card",
  "type": "registry:component",
  "title": "Card",
  "description": "A flexible surface for product content, metadata, and a quiet action row.",
  "author": "Vladislav Stepanov",
  "dependencies": [
    "react@19.3.0",
    "react-dom@19.3.0"
  ],
  "files": [
    {
      "path": "components/stepkit/Card.tsx",
      "content": "/*\n * Stepkit 0.2.0\n * Copyright (c) 2026 Vladislav Stepanov\n *\n * Original Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and copyright in the copied source and in `NOTICE-MAGICUI.md` where applicable.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n */\nimport type { CSSProperties, HTMLAttributes, ReactNode } from \"react\";\nimport \"./styles.css\";\n\nexport type CardRadius = 0 | 4 | 8 | \"square\" | \"soft\" | \"round\";\n\nexport interface CardProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n  eyebrow?: string;\n  title?: string;\n  body?: string;\n  radius?: CardRadius;\n  footer?: ReactNode;\n  children?: ReactNode;\n}\n\nexport function Card({ eyebrow, title = \"A thoughtful surface\", body = \"A small component with room to breathe.\", radius, footer, children, className = \"\", style, ...props }: CardProps) {\n  const radiusValue = typeof radius === \"number\" ? `${radius}px` : radius === \"square\" ? \"0px\" : radius === \"round\" ? \"28px\" : radius === \"soft\" ? \"16px\" : undefined;\n  const cardStyle = radiusValue ? { ...style, \"--stepkit-card-radius\": radiusValue } as CSSProperties : style;\n  return (\n    <article className={`stepkit stepkit-card${className ? ` ${className}` : \"\"}`} style={cardStyle} {...props}>\n      {eyebrow ? <p className=\"stepkit-card__eyebrow\">{eyebrow}</p> : null}\n      <h3 className=\"stepkit-card__title\">{title}</h3>\n      <p className=\"stepkit-card__body\">{body}</p>\n      {children}\n      {footer ? <div className=\"stepkit-card__footer\">{footer}</div> : null}\n    </article>\n  );\n}\n\nexport default Card;\n",
      "type": "registry:component",
      "target": "components/stepkit/Card.tsx"
    },
    {
      "path": "components/stepkit/styles.css",
      "content": "/*\n * Stepkit 0.2.0\n * Copyright (c) 2026 Vladislav Stepanov\n *\n * Original Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and copyright in the copied source and in `NOTICE-MAGICUI.md` where applicable.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n */\n/* Stepkit components inherit tokens from .stepkit-theme or a consumer wrapper. */\n.stepkit-theme { background: var(--stepkit-bg, #f7f7f8); color: var(--stepkit-fg, #17181c); font-family: var(--stepkit-font-sans, Inter, ui-sans-serif, system-ui, sans-serif); }\n.stepkit,\n.stepkit * { box-sizing: border-box; }\n\n.stepkit {\n  color: var(--stepkit-fg, #17181c);\n  font-family: var(--stepkit-font-sans, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif);\n  font-size: 16px;\n  line-height: 1.5;\n  min-width: 0;\n}\n.stepkit :where(button, input, textarea, select) { color: inherit; font: inherit; }\n.stepkit:where(button, a, input, textarea, select, [tabindex=\"0\"]):focus-visible, .stepkit :where(button, a, input, textarea, select, [tabindex=\"0\"]):focus-visible { outline: 3px solid var(--stepkit-accent, #6950df); outline-offset: 3px; }\n.stepkit :where(a) { color: inherit; }\n.stepkit :where(p, h1, h2, h3, h4, ul, ol) { overflow-wrap: anywhere; }\n.stepkit :where(p) { white-space: pre-wrap; }\n.stepkit :where(button) { cursor: pointer; }\n.stepkit :where(button:disabled, input:disabled, textarea:disabled) { cursor: not-allowed; opacity: .58; }\n\n.stepkit-button { align-items: center; background: var(--stepkit-accent, #6950df); border: 1px solid var(--stepkit-accent, #6950df); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-accent-text, #fff); display: inline-flex; font-size: 14px; font-weight: 700; gap: 8px; justify-content: center; min-height: var(--stepkit-control-height, 44px); padding: 10px 17px; text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }\n.stepkit-button:hover:not(:disabled) { background: var(--stepkit-accent-strong, #5137c7); border-color: var(--stepkit-accent-strong, #5137c7); transform: translateY(-1px); }\n.stepkit-button:active:not(:disabled) { transform: translateY(0); }\n.stepkit-button[data-size=\"sm\"] { min-height: 44px; padding: 8px 13px; }\n.stepkit-button[data-size=\"lg\"] { min-height: 50px; padding: 13px 22px; }\n.stepkit-button[data-variant=\"outline\"] { background: transparent; border-color: var(--stepkit-border-strong, #c8cad3); color: var(--stepkit-fg, #17181c); }\n.stepkit-button[data-variant=\"outline\"]:hover:not(:disabled) { background: var(--stepkit-accent-soft, #eeeafd); border-color: var(--stepkit-accent, #6950df); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-button[data-variant=\"ghost\"], .stepkit-button[data-variant=\"soft\"] { background: var(--stepkit-accent-soft, #eeeafd); border-color: transparent; color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-button[data-variant=\"ghost\"]:hover:not(:disabled), .stepkit-button[data-variant=\"soft\"]:hover:not(:disabled) { background: color-mix(in srgb, var(--stepkit-accent-soft, #eeeafd) 76%, var(--stepkit-accent, #6950df)); }\n.stepkit-button[data-variant=\"danger\"] { background: #c43d50; border-color: #c43d50; color: #fff; }\n.stepkit-button[data-variant=\"danger\"]:hover:not(:disabled) { background: #a92d40; border-color: #a92d40; }\n.stepkit-button__spinner { animation: stepkit-spin 700ms linear infinite; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; height: 15px; width: 15px; }\n\n.stepkit-card { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-card-radius, var(--stepkit-radius, 16px)); box-shadow: 0 8px 24px color-mix(in srgb, var(--stepkit-fg, #17181c) 5%, transparent); color: var(--stepkit-fg, #17181c); padding: clamp(18px, 3vw, 28px); }\n.stepkit-card__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 800; letter-spacing: .08em; margin: 0 0 10px; text-transform: uppercase; }\n.stepkit-card__title { font-size: 20px; letter-spacing: -.03em; line-height: 1.2; margin: 0 0 8px; }\n.stepkit-card__body { color: var(--stepkit-muted, #626572); margin: 0; }\n.stepkit-card__footer { align-items: center; border-top: 1px solid var(--stepkit-border, #e3e4e9); display: flex; gap: 12px; justify-content: space-between; margin-top: 22px; padding-top: 16px; }\n\n.stepkit-badge { align-items: center; border-radius: 999px; display: inline-flex; font-size: 12px; font-weight: 750; gap: 7px; line-height: 1; min-height: 28px; padding: 6px 10px; }\n.stepkit-badge[data-size=\"sm\"] { font-size: 11px; min-height: 24px; padding: 5px 8px; }\n.stepkit-badge__dot { background: currentColor; border-radius: 50%; height: 7px; width: 7px; }\n.stepkit-badge[data-tone=\"neutral\"] { background: var(--stepkit-surface-muted, #f0f0f3); color: var(--stepkit-muted, #626572); }\n.stepkit-badge[data-tone=\"accent\"], .stepkit-badge[data-tone=\"info\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-badge[data-tone=\"success\"] { background: #e4f7ef; color: #087452; }\n.stepkit-badge[data-tone=\"warning\"] { background: #fff1dc; color: #9b5b08; }\n.stepkit-badge[data-tone=\"danger\"] { background: #ffe6ea; color: #a52e42; }\n\n.stepkit-field { display: grid; gap: 8px; width: 100%; }\n.stepkit-field__label { color: var(--stepkit-fg, #17181c); font-size: 14px; font-weight: 700; }\n.stepkit-field__hint { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 0; }\n.stepkit-field__error { color: var(--stepkit-error, #b43145); font-size: 13px; margin: 0; }\n.stepkit-input, .stepkit-textarea { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border-strong, #c8cad3); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-fg, #17181c); min-height: var(--stepkit-control-height, 44px); padding: 10px 13px; transition: border-color 160ms ease, box-shadow 160ms ease; width: 100%; }\n.stepkit-textarea { min-height: 116px; resize: vertical; }\n.stepkit-input::placeholder, .stepkit-textarea::placeholder { color: var(--stepkit-placeholder, #626572); opacity: 1; }\n.stepkit-input:hover, .stepkit-textarea:hover { border-color: var(--stepkit-accent, #6950df); }\n.stepkit-input:focus, .stepkit-textarea:focus { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 0 0 4px var(--stepkit-accent-soft, #eeeafd); outline: none; }\n.stepkit-field[data-invalid=\"true\"] .stepkit-input, .stepkit-field[data-invalid=\"true\"] .stepkit-textarea { border-color: #c43d50; }\n.stepkit-field__control { position: relative; }\n.stepkit-field__adornment { align-items: center; color: var(--stepkit-muted, #626572); display: flex; inset: 0 auto 0 13px; pointer-events: none; position: absolute; }\n.stepkit-field__adornment--end { inset: 0 13px 0 auto; }\n.stepkit-field__control:has(.stepkit-field__adornment) .stepkit-input { padding-left: 40px; }\n.stepkit-field__control:has(.stepkit-field__adornment--end) .stepkit-input { padding-right: 40px; }\n\n.stepkit-check, .stepkit-switch { align-items: flex-start; display: flex; gap: 12px; }\n.stepkit-check__box { appearance: none; background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border-strong, #c8cad3); border-radius: 6px; flex: 0 0 20px; height: 20px; margin: 2px 0 0; position: relative; width: 20px; }\n.stepkit-check__box:checked { background: var(--stepkit-accent, #6950df); border-color: var(--stepkit-accent, #6950df); }\n.stepkit-check__box:checked::after { border: solid #fff; border-width: 0 2px 2px 0; content: \"\"; height: 10px; left: 6px; position: absolute; top: 2px; transform: rotate(45deg); width: 5px; }\n.stepkit-check__copy, .stepkit-switch__copy { display: grid; gap: 3px; }\n.stepkit-check__label, .stepkit-switch__label { color: var(--stepkit-fg, #17181c); font-size: 14px; font-weight: 700; }\n.stepkit-check__description, .stepkit-switch__description { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 0; }\n.stepkit-switch__input { appearance: none; background: var(--stepkit-border-strong, #c8cad3); border: 0; border-radius: 999px; flex: 0 0 44px; height: 24px; margin: 1px 0 0; padding: 3px; transition: background-color 160ms ease; width: 44px; }\n.stepkit-switch__input::before { background: #fff; border-radius: 50%; content: \"\"; display: block; height: 18px; transition: transform 160ms ease; width: 18px; }\n.stepkit-switch__input:checked { background: var(--stepkit-accent, #6950df); }\n.stepkit-switch__input:checked::before { transform: translateX(20px); }\n\n.stepkit-tabs { display: grid; gap: 18px; }\n.stepkit-tabs__list { border-bottom: 1px solid var(--stepkit-border, #e3e4e9); display: flex; flex-wrap: wrap; gap: 4px; }\n.stepkit-tabs__trigger { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--stepkit-muted, #626572); min-height: 44px; padding: 9px 13px; }\n.stepkit-tabs__trigger[aria-selected=\"true\"] { border-bottom-color: var(--stepkit-accent, #6950df); color: var(--stepkit-accent-on-soft, #5137c7); font-weight: 750; }\n.stepkit-tabs__panel { animation: stepkit-fade-in 180ms ease both; color: var(--stepkit-muted, #626572); min-height: 60px; }\n\n.stepkit-modal-trigger { margin: 0; }\n.stepkit-modal-panel { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-fg, #17181c); max-height: min(82vh, 680px); max-width: min(520px, calc(100% - 28px)); overflow: auto; padding: clamp(22px, 5vw, 34px); width: 100%; }\n.stepkit-modal-panel::backdrop { background: color-mix(in srgb, var(--stepkit-fg, #17181c) 32%, transparent); }\n.stepkit-modal-title { font-size: 24px; letter-spacing: -.04em; line-height: 1.15; margin: 0 0 10px; }\n.stepkit-modal-body { color: var(--stepkit-muted, #626572); margin: 0 0 24px; }\n.stepkit-modal-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 24px; }\n\n.stepkit-tooltip { display: inline-flex; position: relative; }\n.stepkit-tooltip__content { background: var(--stepkit-fg, #17181c); border-radius: 8px; bottom: calc(100% + 10px); color: var(--stepkit-surface, #fff); font-size: 12px; left: 50%; max-width: min(260px, 80vw); opacity: 0; padding: 8px 10px; pointer-events: none; position: absolute; transform: translate(-50%, 4px); transition: opacity 140ms ease, transform 140ms ease; width: max-content; z-index: 4; }\n.stepkit-tooltip__content::after { border: 5px solid transparent; border-top-color: var(--stepkit-fg, #17181c); content: \"\"; left: 50%; position: absolute; top: 100%; transform: translateX(-50%); }\n.stepkit-tooltip[data-open=\"true\"] .stepkit-tooltip__content { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }\n\n.stepkit-navbar { align-items: center; display: flex; gap: 24px; justify-content: space-between; min-height: 64px; width: 100%; }\n.stepkit-navbar__brand { align-items: center; color: var(--stepkit-fg, #17181c); display: inline-flex; font-size: 17px; font-weight: 800; letter-spacing: -.04em; min-height: 44px; text-decoration: none; }\n.stepkit-navbar__links { align-items: center; display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }\n.stepkit-navbar__link { align-items: center; border-radius: 10px; color: var(--stepkit-muted, #626572); display: inline-flex; min-height: 44px; padding: 8px 11px; text-decoration: none; }\n.stepkit-navbar__link:hover, .stepkit-navbar__link:focus-visible { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-navbar[data-compact=\"true\"] { min-height: 48px; }\n@media (max-width: 560px) { .stepkit-navbar { align-items: flex-start; flex-direction: column; gap: 10px; } .stepkit-navbar__links { justify-content: flex-start; width: 100%; } }\n\n.stepkit-sidebar { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; gap: 18px; min-width: 190px; padding: 16px; }\n.stepkit-sidebar__title { color: var(--stepkit-muted, #626572); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }\n.stepkit-sidebar__items { display: grid; gap: 3px; }\n.stepkit-sidebar__item { align-items: center; background: transparent; border: 0; border-radius: 10px; color: var(--stepkit-muted, #626572); display: flex; font-size: 14px; gap: 9px; min-height: 42px; padding: 9px 10px; text-align: left; width: 100%; }\n.stepkit-sidebar__item:hover, .stepkit-sidebar__item[aria-current=\"page\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-sidebar__item[aria-current=\"page\"] { font-weight: 750; }\n.stepkit-sidebar__footer { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); font-size: 12px; padding-top: 14px; }\n\n.stepkit-command { display: inline-flex; }\n.stepkit-command__dialog { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-fg, #17181c); max-width: min(600px, calc(100% - 24px)); padding: 10px; width: 100%; }\n.stepkit-command__dialog::backdrop { background: color-mix(in srgb, var(--stepkit-fg, #17181c) 30%, transparent); }\n.stepkit-command__input { background: transparent; border: 0; border-bottom: 1px solid var(--stepkit-border, #e3e4e9); border-radius: 0; min-height: 48px; outline: none; padding: 12px; width: 100%; }\n.stepkit-command__list { display: grid; gap: 3px; list-style: none; margin: 8px 0 0; max-height: 300px; overflow: auto; padding: 0; }\n.stepkit-command__item { align-items: center; background: transparent; border: 0; border-radius: 10px; display: flex; gap: 12px; justify-content: space-between; min-height: 44px; padding: 10px 12px; text-align: left; width: 100%; }\n.stepkit-command__item:hover, .stepkit-command__item[aria-selected=\"true\"] { background: var(--stepkit-accent-soft, #eeeafd); color: var(--stepkit-accent-on-soft, #5137c7); }\n.stepkit-command__shortcut { color: var(--stepkit-muted, #626572); font-size: 12px; }\n.stepkit-command__empty { color: var(--stepkit-muted, #626572); margin: 14px 12px; }\n\n.stepkit-accordion { border-top: 1px solid var(--stepkit-border, #e3e4e9); }\n.stepkit-accordion__item { border-bottom: 1px solid var(--stepkit-border, #e3e4e9); }\n.stepkit-accordion__trigger { align-items: center; background: transparent; border: 0; display: flex; font-size: 16px; font-weight: 750; gap: 14px; justify-content: space-between; min-height: 58px; padding: 14px 0; text-align: left; width: 100%; }\n.stepkit-accordion__icon { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 22px; font-weight: 400; }\n.stepkit-accordion__panel { color: var(--stepkit-muted, #626572); max-width: 70ch; padding: 0 28px 20px 0; }\n\n.stepkit-empty-state { align-items: center; background: var(--stepkit-surface, #fff); border: 1px dashed var(--stepkit-border-strong, #c8cad3); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; gap: 10px; justify-content: center; min-height: 240px; padding: 30px; text-align: center; }\n.stepkit-empty-state__icon { align-items: center; background: var(--stepkit-accent-soft, #eeeafd); border-radius: 14px; color: var(--stepkit-accent-on-soft, #5137c7); display: flex; font-size: 22px; height: 48px; justify-content: center; width: 48px; }\n.stepkit-empty-state__title { font-size: 20px; letter-spacing: -.03em; margin: 0; }\n.stepkit-empty-state__description { color: var(--stepkit-muted, #626572); margin: 0 0 8px; max-width: 42ch; }\n\n.stepkit-toast { align-items: flex-start; background: var(--stepkit-fg, #17181c); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); color: var(--stepkit-surface, #fff); display: flex; gap: 16px; justify-content: space-between; max-width: min(420px, 100%); padding: 16px 18px; }\n.stepkit-toast__copy { display: grid; gap: 3px; }\n.stepkit-toast__title { font-weight: 800; }\n.stepkit-toast__message { color: color-mix(in srgb, var(--stepkit-surface, #fff) 72%, transparent); font-size: 14px; margin: 0; }\n.stepkit-toast__close { background: transparent; border: 0; border-radius: 8px; color: inherit; min-height: 36px; min-width: 36px; }\n.stepkit-toast__close:hover { background: color-mix(in srgb, var(--stepkit-surface, #fff) 16%, transparent); }\n\n.stepkit-border-highlight { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); color: var(--stepkit-fg, #17181c); display: block; padding: 24px; text-decoration: none; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }\n.stepkit-border-highlight:hover, .stepkit-border-highlight:focus-visible { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 0 0 4px var(--stepkit-accent-soft, #eeeafd); transform: translateY(-2px); }\n.stepkit-border-highlight[data-intensity=\"strong\"] { border-color: var(--stepkit-accent, #6950df); }\n.stepkit-border-highlight[data-paused=\"true\"] { transition: none; }\n.stepkit-border-highlight__title { display: block; font-size: 18px; font-weight: 800; }\n.stepkit-border-highlight__hint { color: var(--stepkit-muted, #626572); display: block; font-size: 13px; margin-top: 5px; }\n\n.stepkit-pointer-tilt { perspective: 900px; }\n.stepkit-pointer-tilt__surface { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); box-shadow: var(--stepkit-shadow, 0 20px 60px rgba(31, 26, 64, .1)); padding: clamp(24px, 5vw, 50px); transform: rotateX(var(--stepkit-tilt-y, 0deg)) rotateY(var(--stepkit-tilt-x, 0deg)); transition: transform 180ms ease; }\n.stepkit-pointer-tilt__surface h3 { font-size: clamp(24px, 4vw, 42px); letter-spacing: -.06em; line-height: 1; margin: 0 0 12px; }\n.stepkit-pointer-tilt__surface p { color: var(--stepkit-muted, #626572); margin: 0; }\n.stepkit-pointer-tilt[data-paused=\"true\"] .stepkit-pointer-tilt__surface { transition: none; transform: none; }\n\n.stepkit-text-reveal { display: inline; }\n.stepkit-text-reveal__word { animation: stepkit-reveal 520ms cubic-bezier(.2,.8,.2,1) forwards; animation-delay: calc(var(--stepkit-index) * 55ms); display: inline-block; margin-right: .23em; opacity: 0; transform: translateY(.45em); }\n.stepkit-text-reveal[data-paused=\"true\"] .stepkit-text-reveal__word { animation: none; opacity: 1; transform: none; }\n\n.stepkit-spotlight-panel { background: radial-gradient(circle at var(--stepkit-spotlight-x, 50%) var(--stepkit-spotlight-y, 50%), color-mix(in srgb, var(--stepkit-accent, #6950df) 25%, transparent), transparent 34%), var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 260px; overflow: hidden; padding: clamp(24px, 5vw, 54px); position: relative; }\n.stepkit-spotlight-panel::after { background: linear-gradient(135deg, color-mix(in srgb, var(--stepkit-accent, #6950df) 12%, transparent), transparent 48%); content: \"\"; inset: 0; pointer-events: none; position: absolute; }\n.stepkit-spotlight-panel__content { max-width: 34rem; position: relative; z-index: 1; }\n.stepkit-spotlight-panel__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }\n.stepkit-spotlight-panel h3 { font-size: clamp(26px, 5vw, 52px); letter-spacing: -.07em; line-height: .98; margin: 14px 0; }\n.stepkit-spotlight-panel p { color: var(--stepkit-muted, #626572); margin: 0; max-width: 46ch; }\n\n.stepkit-gradient-wash { background: linear-gradient(135deg, color-mix(in srgb, var(--stepkit-accent, #6950df) 19%, var(--stepkit-bg, #f7f7f8)), var(--stepkit-surface, #fff) 52%, color-mix(in srgb, var(--stepkit-accent-soft, #eeeafd) 68%, var(--stepkit-surface, #fff))); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 260px; overflow: hidden; padding: clamp(26px, 5vw, 58px); position: relative; }\n.stepkit-gradient-wash::before, .stepkit-gradient-wash::after { border: 1px solid color-mix(in srgb, var(--stepkit-accent, #6950df) 30%, transparent); border-radius: 50%; content: \"\"; height: 240px; position: absolute; right: -50px; top: -80px; transform: rotate(-20deg); width: 240px; }\n.stepkit-gradient-wash::after { bottom: -80px; height: 150px; right: 110px; top: auto; width: 150px; }\n.stepkit-gradient-wash__content { max-width: 36rem; position: relative; z-index: 1; }\n.stepkit-gradient-wash h3 { font-size: clamp(28px, 5vw, 54px); letter-spacing: -.07em; line-height: .98; margin: 0 0 14px; }\n.stepkit-gradient-wash p { color: var(--stepkit-muted, #626572); margin: 0; max-width: 45ch; }\n\n.stepkit-staggered-grid { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-staggered-grid__item { animation: stepkit-rise 500ms cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--stepkit-index) * 70ms); background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 150px; padding: 20px; }\n.stepkit-staggered-grid__number { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 13px; font-weight: 800; }\n.stepkit-staggered-grid__title { font-size: 18px; font-weight: 800; margin: 28px 0 5px; }\n.stepkit-staggered-grid__body { color: var(--stepkit-muted, #626572); font-size: 14px; margin: 0; }\n.stepkit-staggered-grid[data-paused=\"true\"] .stepkit-staggered-grid__item { animation: none; }\n@media (max-width: 640px) { .stepkit-staggered-grid { grid-template-columns: 1fr; } }\n\n.stepkit-expandable-card { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); overflow: hidden; }\n.stepkit-expandable-card__trigger { align-items: center; background: transparent; border: 0; display: flex; gap: 14px; justify-content: space-between; min-height: 72px; padding: 18px 20px; text-align: left; width: 100%; }\n.stepkit-expandable-card__title { font-size: 18px; font-weight: 800; }\n.stepkit-expandable-card__icon { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 24px; }\n.stepkit-expandable-card__body { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); padding: 18px 20px 22px; }\n\n.stepkit-hero { background: linear-gradient(135deg, var(--stepkit-surface, #fff), var(--stepkit-accent-soft, #eeeafd)); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: calc(var(--stepkit-radius, 16px) + 6px); display: grid; gap: 20px; overflow: hidden; padding: clamp(32px, 7vw, 84px); position: relative; }\n.stepkit-hero::after { background: radial-gradient(circle, color-mix(in srgb, var(--stepkit-accent, #6950df) 38%, transparent), transparent 68%); content: \"\"; height: 400px; opacity: .42; position: absolute; right: -160px; top: -160px; width: 400px; }\n.stepkit-hero__content { max-width: 660px; position: relative; z-index: 1; }\n.stepkit-hero__eyebrow { color: var(--stepkit-accent-on-soft, #5137c7); font-size: 12px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }\n.stepkit-hero__headline { font-size: clamp(38px, 7vw, 78px); letter-spacing: -.08em; line-height: .96; margin: 12px 0 18px; max-width: 10ch; }\n.stepkit-hero__body { color: var(--stepkit-muted, #626572); font-size: clamp(16px, 2vw, 20px); margin: 0; max-width: 48ch; }\n.stepkit-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }\n.stepkit-hero__visual { min-height: 170px; position: relative; z-index: 1; }\n.stepkit-hero__orb { background: linear-gradient(135deg, var(--stepkit-accent, #6950df), color-mix(in srgb, var(--stepkit-accent, #6950df) 42%, #fff)); border-radius: 42% 58% 55% 45%; box-shadow: 0 30px 80px color-mix(in srgb, var(--stepkit-accent, #6950df) 32%, transparent); height: clamp(130px, 25vw, 240px); margin-left: auto; transform: rotate(-15deg); width: clamp(130px, 25vw, 240px); }\n\n.stepkit-feature-bento { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(4, minmax(0, 1fr)); }\n.stepkit-feature-bento__item { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); min-height: 180px; overflow: hidden; padding: clamp(18px, 3vw, 28px); position: relative; }\n.stepkit-feature-bento__item:nth-child(1) { grid-column: span 2; grid-row: span 2; min-height: 380px; }\n.stepkit-feature-bento__item:nth-child(2) { grid-column: span 2; }\n.stepkit-feature-bento__item:nth-child(3), .stepkit-feature-bento__item:nth-child(4) { grid-column: span 1; }\n.stepkit-feature-bento__glow { background: radial-gradient(circle, color-mix(in srgb, var(--stepkit-accent, #6950df) 55%, transparent), transparent 70%); height: 260px; opacity: .7; position: absolute; right: -80px; top: -70px; width: 260px; }\n.stepkit-feature-bento__title { font-size: 21px; letter-spacing: -.04em; margin: 0 0 8px; position: relative; }\n.stepkit-feature-bento__body { color: var(--stepkit-muted, #626572); margin: 0; max-width: 34ch; position: relative; }\n.stepkit-feature-bento__metric { bottom: 22px; color: var(--stepkit-accent, #6950df); font-size: clamp(38px, 7vw, 72px); font-weight: 850; letter-spacing: -.09em; line-height: 1; position: absolute; right: 22px; }\n@media (max-width: 760px) { .stepkit-feature-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stepkit-feature-bento__item:nth-child(1), .stepkit-feature-bento__item:nth-child(2), .stepkit-feature-bento__item:nth-child(3), .stepkit-feature-bento__item:nth-child(4) { grid-column: span 2; grid-row: auto; min-height: 180px; } }\n\n.stepkit-pricing-comparison { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-pricing-comparison > .stepkit-card__eyebrow { grid-column: 1 / -1; margin: 0; }\n.stepkit-pricing-comparison__plan { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: flex; flex-direction: column; padding: clamp(20px, 3vw, 28px); position: relative; }\n.stepkit-pricing-comparison__plan[data-recommended=\"true\"] { border-color: var(--stepkit-accent, #6950df); box-shadow: 0 14px 40px color-mix(in srgb, var(--stepkit-accent, #6950df) 15%, transparent); transform: translateY(-8px); }\n.stepkit-pricing-comparison__recommended { background: var(--stepkit-accent, #6950df); border-radius: 999px; color: #fff; font-size: 11px; font-weight: 800; padding: 5px 9px; position: absolute; right: 18px; text-transform: uppercase; top: 18px; }\n.stepkit-pricing-comparison__name { font-size: 18px; font-weight: 800; }\n.stepkit-pricing-comparison__description { color: var(--stepkit-muted, #626572); font-size: 14px; margin: 7px 0 20px; }\n.stepkit-pricing-comparison__price { font-size: 42px; font-weight: 850; letter-spacing: -.08em; line-height: 1; }\n.stepkit-pricing-comparison__interval { color: var(--stepkit-muted, #626572); font-size: 13px; margin-left: 5px; }\n.stepkit-pricing-comparison__features { border-top: 1px solid var(--stepkit-border, #e3e4e9); display: grid; gap: 10px; list-style: none; margin: 22px 0; padding: 18px 0 0; }\n.stepkit-pricing-comparison__feature { color: var(--stepkit-muted, #626572); font-size: 14px; }\n.stepkit-pricing-comparison__feature::before { color: var(--stepkit-accent-on-soft, #5137c7); content: \"✓\"; font-weight: 800; margin-right: 9px; }\n.stepkit-pricing-comparison__action { margin-top: auto; width: 100%; }\n@media (max-width: 760px) { .stepkit-pricing-comparison { grid-template-columns: 1fr; } .stepkit-pricing-comparison__plan[data-recommended=\"true\"] { transform: none; } }\n\n.stepkit-testimonials { display: grid; gap: var(--stepkit-space, 16px); grid-template-columns: repeat(3, minmax(0, 1fr)); }\n.stepkit-testimonials__item { background: var(--stepkit-surface, #fff); border: 1px solid var(--stepkit-border, #e3e4e9); border-radius: var(--stepkit-radius, 16px); display: grid; gap: 20px; padding: 22px; }\n.stepkit-testimonials__quote { font-size: 18px; letter-spacing: -.03em; margin: 0; }\n.stepkit-testimonials__author { align-items: center; display: flex; gap: 10px; }\n.stepkit-testimonials__avatar { align-items: center; background: var(--stepkit-accent-soft, #eeeafd); border-radius: 50%; color: var(--stepkit-accent-on-soft, #5137c7); display: flex; font-size: 12px; font-weight: 850; height: 34px; justify-content: center; width: 34px; }\n.stepkit-testimonials__name { font-size: 13px; font-weight: 800; }\n.stepkit-testimonials__role { color: var(--stepkit-muted, #626572); display: block; font-size: 12px; }\n@media (max-width: 760px) { .stepkit-testimonials { grid-template-columns: 1fr; } }\n\n.stepkit-faq { display: grid; gap: 28px; grid-template-columns: minmax(180px, .6fr) minmax(0, 1.4fr); }\n.stepkit-faq__intro h3 { font-size: clamp(28px, 5vw, 48px); letter-spacing: -.07em; line-height: 1; margin: 0 0 12px; }\n.stepkit-faq__intro p { color: var(--stepkit-muted, #626572); margin: 0; }\n@media (max-width: 700px) { .stepkit-faq { grid-template-columns: 1fr; } }\n\n.stepkit-footer { border-top: 1px solid var(--stepkit-border, #e3e4e9); display: grid; gap: 28px; grid-template-columns: 1.3fr repeat(3, 1fr); padding: 34px 0 12px; }\n.stepkit-footer__brand { font-size: 20px; font-weight: 850; letter-spacing: -.05em; }\n.stepkit-footer__note { color: var(--stepkit-muted, #626572); font-size: 13px; margin: 8px 0 0; max-width: 26ch; }\n.stepkit-footer__group h4 { font-size: 12px; margin: 0 0 10px; }\n.stepkit-footer__links { display: grid; gap: 7px; }\n.stepkit-footer__link { color: var(--stepkit-muted, #626572); font-size: 13px; text-decoration: none; }\n.stepkit-footer__link:hover { color: var(--stepkit-accent-on-soft, #5137c7); text-decoration: underline; }\n.stepkit-footer__copyright { border-top: 1px solid var(--stepkit-border, #e3e4e9); color: var(--stepkit-muted, #626572); font-size: 12px; grid-column: 1 / -1; padding-top: 14px; }\n@media (max-width: 700px) { .stepkit-footer { grid-template-columns: repeat(2, 1fr); } .stepkit-footer__brand { grid-column: 1 / -1; } }\n\n@keyframes stepkit-spin { to { transform: rotate(360deg); } }\n@keyframes stepkit-fade-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }\n@keyframes stepkit-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }\n@keyframes stepkit-reveal { to { opacity: 1; transform: none; } }\n@media (prefers-reduced-motion: reduce) { .stepkit, .stepkit *, .stepkit::before, .stepkit::after, .stepkit *::before, .stepkit *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }\n.stepkit-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }\n\n/* Magic UI Border Beam adaptation: local CSS path, tokens, and motion bounds. */\n.stepkit-border-highlight { isolation: isolate; overflow: hidden; position: relative; }\n.stepkit-border-highlight::before { background: linear-gradient(120deg, color-mix(in srgb, var(--stepkit-beam-from, var(--stepkit-accent, #6950df)) 44%, transparent), transparent 58%, color-mix(in srgb, var(--stepkit-beam-to, var(--stepkit-accent-strong, #5137c7)) 40%, transparent)) border-box; border: var(--stepkit-beam-width, 1px) solid transparent; border-radius: inherit; content: \"\"; inset: 0; mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0); mask-composite: exclude; opacity: .5; pointer-events: none; position: absolute; }\n.stepkit-border-highlight__beam { aspect-ratio: 1; background: radial-gradient(circle, var(--stepkit-beam-from, var(--stepkit-accent, #6950df)) 0 16%, var(--stepkit-beam-to, var(--stepkit-accent-strong, #5137c7)) 37%, transparent 72%); border-radius: 50%; filter: blur(1px); height: var(--stepkit-beam-size, 52px); left: calc(var(--stepkit-beam-size, 52px) * -.5); offset-distance: var(--stepkit-beam-start, 0%); offset-path: inset(0 round var(--stepkit-radius, 16px)); opacity: .8; pointer-events: none; position: absolute; top: calc(var(--stepkit-beam-size, 52px) * -.5); animation: stepkit-border-beam calc(var(--stepkit-beam-duration, 6) * 1s) linear calc(var(--stepkit-beam-delay, 0) * -1s) infinite; z-index: 0; }\n.stepkit-border-highlight[data-reverse=\"true\"] .stepkit-border-highlight__beam { animation-direction: reverse; }\n.stepkit-border-highlight[data-intensity=\"subtle\"] .stepkit-border-highlight__beam { opacity: .56; }\n.stepkit-border-highlight[data-intensity=\"strong\"] .stepkit-border-highlight__beam { opacity: .95; }\n.stepkit-border-highlight[data-paused=\"true\"] .stepkit-border-highlight__beam { animation-play-state: paused; }\n.stepkit-border-highlight > :not(.stepkit-border-highlight__beam) { position: relative; z-index: 1; }\n.stepkit-number-transition { color: var(--stepkit-fg, #17181c); font-variant-numeric: tabular-nums; font-weight: 800; }\n@keyframes stepkit-border-beam { from { offset-distance: var(--stepkit-beam-start, 0%); } to { offset-distance: calc(var(--stepkit-beam-start, 0%) + 100%); } }\n@media (prefers-reduced-motion: reduce) { .stepkit-border-highlight__beam { animation: none; offset-distance: var(--stepkit-beam-start, 0%); } }\n",
      "type": "registry:style",
      "target": "components/stepkit/styles.css"
    },
    {
      "path": "NOTICE.md",
      "content": "Stepkit 0.2.0\nCopyright (c) 2026 Vladislav Stepanov\n\nOriginal Stepkit portions in this release are licensed under the MIT License. Adapted portions identify their upstream licence and copyright in the copied source and in `NOTICE-MAGICUI.md` where applicable.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
      "type": "registry:file",
      "target": "NOTICE.md"
    },
    {
      "path": "PROVENANCE-stepkit-card.md",
      "content": "# Stepkit provenance: Card\n\nRelease: Stepkit 0.2.0\nOrigin: Original\nLicence: MIT\n\nThis source is an original Stepkit implementation.\n\nSee `NOTICE.md` for the Stepkit MIT notice. Adapted Magic UI sources also carry `NOTICE-MAGICUI.md`.\n",
      "type": "registry:file",
      "target": "PROVENANCE-stepkit-card.md"
    }
  ],
  "docs": "# Card\n\nA flexible surface for product content, metadata, and a quiet action row.\n\nStepkit 0.2.0 · Original · MIT\n\nThe generated source keeps user text as text and includes the shared styles file.\n\n## Usage\n\n```tsx\nimport type { CSSProperties } from \"react\";\nimport { Card } from \"./components/stepkit/Card\";\nimport \"./components/stepkit/styles.css\";\n\nconst themeStyle = {\"--stepkit-bg\":\"#f7f7f8\",\"--stepkit-surface\":\"#ffffff\",\"--stepkit-surface-muted\":\"#f0f0f3\",\"--stepkit-fg\":\"#17181c\",\"--stepkit-muted\":\"#626572\",\"--stepkit-border\":\"#e3e4e9\",\"--stepkit-border-strong\":\"#c8cad3\",\"--stepkit-code\":\"#f1f1f4\",\"--stepkit-shadow\":\"0 20px 60px rgba(31, 26, 64, .10)\",\"--stepkit-accent\":\"#6950df\",\"--stepkit-accent-strong\":\"#5137c7\",\"--stepkit-accent-soft\":\"#eeeafd\",\"--stepkit-accent-on-soft\":\"#5137c7\",\"--stepkit-accent-text\":\"#ffffff\",\"--stepkit-error\":\"#b43145\",\"--stepkit-placeholder\":\"#626572\",\"--stepkit-radius\":\"16px\",\"--stepkit-space\":\"16px\",\"--stepkit-control-height\":\"44px\",\"--stepkit-font-sans\":\"Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", sans-serif\"} as CSSProperties;\n\nexport default function Example() {\n  return (\n    <div className=\"stepkit-theme\" data-stepkit-preset=\"modern\" style={themeStyle}>\n      <Card\n      eyebrow={\"Design system\"}\n      title={\"A thoughtful surface\"}\n      body={\"A small component with room to breathe.\"}\n      radius={\"soft\"}\n      />\n    </div>\n  );\n}\n```\n\n## Dependencies\n\n- react@19.3.0\n- react-dom@19.3.0\n\nSee NOTICE.md and PROVENANCE-stepkit-card.md for the notices and provenance that must travel with copied source.\n",
  "categories": [
    "foundations"
  ],
  "meta": {
    "stepkit": {
      "version": "0.2.0",
      "slug": "card",
      "componentName": "Card",
      "origin": "Original",
      "license": "MIT",
      "sourceFiles": [
        "components/Card.tsx",
        "components/styles.css"
      ],
      "provenance": {
        "kind": "original",
        "note": "Original Stepkit implementation."
      },
      "upstream": null,
      "noticeFiles": [
        "NOTICE.md",
        "PROVENANCE-stepkit-card.md"
      ]
    }
  }
}
