diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 15aa943..8cbf3b9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,5 @@ # Global — core team reviews everything by default -* @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey @seth-mensah +* @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey # App directory — critical, needs at least 2 eyes /app/ @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey @@ -16,4 +16,4 @@ next.config.js @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey /public/ @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey # Docs -/docs/ @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey \ No newline at end of file +/docs/ @cerebrocerberus @ichigo-k @khali-physi-hacker @papayankey diff --git a/docs/cta-button.md b/docs/cta-button.md new file mode 100644 index 0000000..a3bef06 --- /dev/null +++ b/docs/cta-button.md @@ -0,0 +1,60 @@ +# CTA Button Documentation + +The `CtaButton` component (`src/components/ui/cta-button.tsx`) provides a highly customizable button component featuring the signature decorative "offset" background typical of the Codetopia design language. + +It is completely polymorphic, meaning it can render as a standard ` + ))} + + + + {/* Global CTA */} + + + + INVITE US TO YOUR CAMPUS OR HUB + + + + + + + + {/* Centered Brutalist Modal Card */} + {selectedStory && ( + // biome-ignore lint/a11y/useKeyWithClickEvents: Backdrop does not need keyboard interaction + // biome-ignore lint/a11y/noStaticElementInteractions: Backdrop is a presentational element +
setSelectedStory(null)} + > + {/* Codetopia Logo — top-left, mirrors close button */} +
+ Codetopia +
+ + {/* Global Screen-Fixed Close Button */} + + + {/* Modal card — scrollable on all breakpoints, max 92dvh tall */} +
e.stopPropagation()} + onKeyDown={(e) => e.stopPropagation()} + role="dialog" + aria-modal="true" + > + {/* Left Data Column */} +
+
+ + {selectedStory.date} +
+
+ + {selectedStory.location} +
+
+ + {/* Right Panoramic View Column */} +
+ {isPlayingVideo && selectedStory.link ? ( +
+ +