From a6add70067d63dc1d2b1e122122c2b65ec5e5e1b Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Fri, 15 Aug 2025 18:10:59 -0600 Subject: [PATCH 1/5] Default NumberedCards size implemented --- app/components/NumberedCard.js | 23 +++++++++++++++++ app/components/NumberedCards.js | 40 ++++++++++++++++++++++++++++++ app/components/SectionHeader.js | 19 ++++++++++++++ app/components/SectionNumber.js | 33 ++++++++++++++++++++++++ app/page.js | 30 +++++++++++++++++++++- public/assets/SectionNumber_1.png | Bin 0 -> 3409 bytes public/assets/SectionNumber_2.png | Bin 0 -> 27593 bytes public/assets/SectionNumber_3.png | Bin 0 -> 23001 bytes 8 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 app/components/NumberedCard.js create mode 100644 app/components/NumberedCards.js create mode 100644 app/components/SectionHeader.js create mode 100644 app/components/SectionNumber.js create mode 100644 public/assets/SectionNumber_1.png create mode 100644 public/assets/SectionNumber_2.png create mode 100644 public/assets/SectionNumber_3.png diff --git a/app/components/NumberedCard.js b/app/components/NumberedCard.js new file mode 100644 index 0000000..70f5b5d --- /dev/null +++ b/app/components/NumberedCard.js @@ -0,0 +1,23 @@ +"use client"; + +import SectionNumber from "./SectionNumber"; + +const NumberedCard = ({ number, text, iconShape, iconColor }) => { + return ( +
+ {/* Section Number - Top part */} +
+ +
+ + {/* Card Content - Bottom part */} +
+

+ {text} +

+
+
+ ); +}; + +export default NumberedCard; diff --git a/app/components/NumberedCards.js b/app/components/NumberedCards.js new file mode 100644 index 0000000..eeda4de --- /dev/null +++ b/app/components/NumberedCards.js @@ -0,0 +1,40 @@ +"use client"; + +import NumberedCard from "./NumberedCard"; +import SectionHeader from "./SectionHeader"; +import Button from "./Button"; + +const NumberedCards = ({ title, subtitle, cards }) => { + return ( +
+
+ {/* Section Header */} +
+ +
+ + {/* Cards Container */} +
+ {cards.map((card, index) => ( + + ))} +
+ + {/* Call to Action Button */} +
+ +
+
+
+ ); +}; + +export default NumberedCards; diff --git a/app/components/SectionHeader.js b/app/components/SectionHeader.js new file mode 100644 index 0000000..f5cc48c --- /dev/null +++ b/app/components/SectionHeader.js @@ -0,0 +1,19 @@ +"use client"; + +const SectionHeader = ({ title, subtitle }) => { + return ( +
+ {/* Title - Bricolage Grotesque */} +

+ {title} +

+ + {/* Subtitle - Inter */} +

+ {subtitle} +

+
+ ); +}; + +export default SectionHeader; diff --git a/app/components/SectionNumber.js b/app/components/SectionNumber.js new file mode 100644 index 0000000..75ef1a1 --- /dev/null +++ b/app/components/SectionNumber.js @@ -0,0 +1,33 @@ +"use client"; + +const SectionNumber = ({ number }) => { + const getImageSrc = (num) => { + switch (num) { + case 1: + return "/assets/SectionNumber_1.png"; + case 2: + return "/assets/SectionNumber_2.png"; + case 3: + return "/assets/SectionNumber_3.png"; + default: + return "/assets/SectionNumber_1.png"; + } + }; + + return ( +
+ {`Section +
+ + {number} + +
+
+ ); +}; + +export default SectionNumber; diff --git a/app/page.js b/app/page.js index b68b686..6c5df65 100644 --- a/app/page.js +++ b/app/page.js @@ -1,3 +1,31 @@ +import NumberedCards from "./components/NumberedCards"; + export default function Page() { - return
{/* home page content will go here */}
; + const numberedCardsData = { + title: "How CommunityRule works", + subtitle: "Here's a quick overview of the process, from start to finish.", + cards: [ + { + text: "Document how your community makes decisions", + iconShape: "blob", + iconColor: "green", + }, + { + text: "Build an operating manual for a successful community", + iconShape: "gear", + iconColor: "purple", + }, + { + text: "Get a link to your manual for your group to review and evolve", + iconShape: "star", + iconColor: "orange", + }, + ], + }; + + return ( +
+ +
+ ); } diff --git a/public/assets/SectionNumber_1.png b/public/assets/SectionNumber_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b92a9ffba13102bc0a8b543b947d9421c9359c93 GIT binary patch literal 3409 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 literal 0 HcmV?d00001 diff --git a/public/assets/SectionNumber_2.png b/public/assets/SectionNumber_2.png new file mode 100644 index 0000000000000000000000000000000000000000..60117695169e32728a74c59ab4712b25b499aa8d GIT binary patch literal 27593 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

keeMW{Qz!@5`#t*9V=TpwtUOXfYO6k9=C% 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 Date: Fri, 15 Aug 2025 19:08:35 -0600 Subject: [PATCH 2/5] Numbered Cards small breakpoint --- app/components/NumberedCard.js | 12 ++++++------ app/components/NumberedCards.js | 8 ++++---- app/components/SectionHeader.js | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/components/NumberedCard.js b/app/components/NumberedCard.js index 70f5b5d..06422de 100644 --- a/app/components/NumberedCard.js +++ b/app/components/NumberedCard.js @@ -4,15 +4,15 @@ import SectionNumber from "./SectionNumber"; const NumberedCard = ({ number, text, iconShape, iconColor }) => { return ( -

- {/* Section Number - Top part */} -
+
+ {/* Section Number - Left part (sm breakpoint) */} +
- {/* Card Content - Bottom part */} -
-

+ {/* Card Content - Right part (sm breakpoint) */} +

+

{text}

diff --git a/app/components/NumberedCards.js b/app/components/NumberedCards.js index eeda4de..b3a9941 100644 --- a/app/components/NumberedCards.js +++ b/app/components/NumberedCards.js @@ -6,15 +6,15 @@ import Button from "./Button"; const NumberedCards = ({ title, subtitle, cards }) => { return ( -
+
{/* Section Header */} -
+
{/* Cards Container */} -
+
{cards.map((card, index) => ( {
{/* Call to Action Button */} -
+
diff --git a/app/components/SectionHeader.js b/app/components/SectionHeader.js index f5cc48c..f8c9d00 100644 --- a/app/components/SectionHeader.js +++ b/app/components/SectionHeader.js @@ -4,12 +4,12 @@ const SectionHeader = ({ title, subtitle }) => { return (
{/* Title - Bricolage Grotesque */} -

+

{title}

{/* Subtitle - Inter */} -

+

{subtitle}

From 3ab67d5096df499de1562f0c19e37ef49dd163ec Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Sun, 17 Aug 2025 15:00:06 -0600 Subject: [PATCH 3/5] Numbered Cards large breakpoint --- app/components/NumberedCard.js | 12 +++---- app/components/NumberedCards.js | 59 +++++++++++++++++++++------------ app/components/SectionHeader.js | 25 ++++++++------ 3 files changed, 58 insertions(+), 38 deletions(-) diff --git a/app/components/NumberedCard.js b/app/components/NumberedCard.js index 06422de..bc47611 100644 --- a/app/components/NumberedCard.js +++ b/app/components/NumberedCard.js @@ -4,15 +4,15 @@ import SectionNumber from "./SectionNumber"; const NumberedCard = ({ number, text, iconShape, iconColor }) => { return ( -
- {/* Section Number - Left part (sm breakpoint) */} -
+
+ {/* Section Number - Top right (lg breakpoint) */} +
- {/* Card Content - Right part (sm breakpoint) */} -
-

+ {/* Card Content - Bottom left (lg breakpoint) */} +

+

{text}

diff --git a/app/components/NumberedCards.js b/app/components/NumberedCards.js index b3a9941..5457c78 100644 --- a/app/components/NumberedCards.js +++ b/app/components/NumberedCards.js @@ -6,31 +6,46 @@ import Button from "./Button"; const NumberedCards = ({ title, subtitle, cards }) => { return ( -
+
- {/* Section Header */} -
- -
- - {/* Cards Container */} -
- {cards.map((card, index) => ( - + {/* Section Header */} +
+ - ))} -
+
- {/* Call to Action Button */} -
- + {/* Cards Container */} +
+ {cards.map((card, index) => ( + + ))} +
+ + {/* Call to Action Button */} +
+ {/* Default button for xsm and sm breakpoints */} +
+ +
+ {/* Outlined button for lg and xlg breakpoints */} +
+ +
+
diff --git a/app/components/SectionHeader.js b/app/components/SectionHeader.js index f8c9d00..5a3953c 100644 --- a/app/components/SectionHeader.js +++ b/app/components/SectionHeader.js @@ -1,17 +1,22 @@ "use client"; -const SectionHeader = ({ title, subtitle }) => { +const SectionHeader = ({ title, subtitle, titleLg }) => { return ( -
- {/* Title - Bricolage Grotesque */} -

- {title} -

+
+ {/* Title Container - Left side (lg breakpoint) */} +
+

+ {title} + {titleLg || title} +

+
- {/* Subtitle - Inter */} -

- {subtitle} -

+ {/* Subtitle Container - Right side (lg breakpoint) */} +
+

+ {subtitle} +

+
); }; From 5a552bc78b89c72e9068a6b138694ced1c5760c7 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Sun, 17 Aug 2025 21:34:36 -0600 Subject: [PATCH 4/5] Numbered Cards extra large breakpoint and storybook --- app/components/NumberedCard.js | 2 +- app/components/NumberedCards.js | 2 +- app/components/SectionHeader.js | 12 +-- stories/NumberedCard.stories.js | 113 ++++++++++++++++++++++++++++ stories/NumberedCards.stories.js | 125 +++++++++++++++++++++++++++++++ stories/SectionHeader.stories.js | 106 ++++++++++++++++++++++++++ stories/SectionNumber.stories.js | 78 +++++++++++++++++++ 7 files changed, 430 insertions(+), 8 deletions(-) create mode 100644 stories/NumberedCard.stories.js create mode 100644 stories/NumberedCards.stories.js create mode 100644 stories/SectionHeader.stories.js create mode 100644 stories/SectionNumber.stories.js diff --git a/app/components/NumberedCard.js b/app/components/NumberedCard.js index bc47611..c0c91bd 100644 --- a/app/components/NumberedCard.js +++ b/app/components/NumberedCard.js @@ -12,7 +12,7 @@ const NumberedCard = ({ number, text, iconShape, iconColor }) => { {/* Card Content - Bottom left (lg breakpoint) */}
-

+

{text}

diff --git a/app/components/NumberedCards.js b/app/components/NumberedCards.js index 5457c78..c7ed1ef 100644 --- a/app/components/NumberedCards.js +++ b/app/components/NumberedCards.js @@ -6,7 +6,7 @@ import Button from "./Button"; const NumberedCards = ({ title, subtitle, cards }) => { return ( -
+
{/* Section Header */} diff --git a/app/components/SectionHeader.js b/app/components/SectionHeader.js index 5a3953c..e6dfe6c 100644 --- a/app/components/SectionHeader.js +++ b/app/components/SectionHeader.js @@ -2,18 +2,18 @@ const SectionHeader = ({ title, subtitle, titleLg }) => { return ( -
+
{/* Title Container - Left side (lg breakpoint) */} -
-

+
+

{title} {titleLg || title}

- {/* Subtitle Container - Right side (lg breakpoint) */} -
-

+ {/* Subtitle Container */} +

+

{subtitle}

diff --git a/stories/NumberedCard.stories.js b/stories/NumberedCard.stories.js new file mode 100644 index 0000000..aa541eb --- /dev/null +++ b/stories/NumberedCard.stories.js @@ -0,0 +1,113 @@ +import NumberedCard from "../app/components/NumberedCard"; + +export default { + title: "Components/NumberedCard", + component: NumberedCard, + parameters: { + layout: "centered", + docs: { + description: { + component: + "Individual numbered card component that displays a step in a process with a numbered icon and descriptive text. Supports responsive layouts across different breakpoints.", + }, + }, + }, + argTypes: { + number: { + control: { type: "number", min: 1, max: 9 }, + description: "The number to display on the card", + }, + text: { + control: { type: "text" }, + description: "The descriptive text for this step", + }, + iconShape: { + control: { type: "select" }, + options: ["blob", "gear", "star"], + description: + "The shape of the icon background (currently not used, uses PNG images)", + }, + iconColor: { + control: { type: "select" }, + options: ["green", "purple", "orange", "blue"], + description: + "The color theme for the icon (currently not used, uses PNG images)", + }, + }, + tags: ["autodocs"], +}; + +export const Default = { + args: { + number: 1, + text: "Document how your community makes decisions", + iconShape: "blob", + iconColor: "green", + }, +}; + +export const AllNumbers = { + args: { + number: 1, + text: "Example card text", + iconShape: "blob", + iconColor: "green", + }, + render: (args) => ( +
+ + + +
+ ), + parameters: { + docs: { + description: { + story: + "Shows all three numbered cards with different content to demonstrate the visual hierarchy.", + }, + }, + }, +}; + +export const LongText = { + args: { + number: 1, + text: "This is a much longer piece of text that demonstrates how the card handles content that spans multiple lines and requires more space to display properly", + iconShape: "blob", + iconColor: "green", + }, + parameters: { + docs: { + description: { + story: + "Demonstrates how the card handles longer text content across different breakpoints.", + }, + }, + }, +}; + +export const ResponsiveTest = { + args: { + number: 2, + text: "Test responsive behavior by resizing your browser window", + iconShape: "gear", + iconColor: "purple", + }, + parameters: { + docs: { + description: { + story: + "Test the responsive behavior by resizing your browser window or using the viewport controls in Storybook.", + }, + }, + }, +}; diff --git a/stories/NumberedCards.stories.js b/stories/NumberedCards.stories.js new file mode 100644 index 0000000..aed510b --- /dev/null +++ b/stories/NumberedCards.stories.js @@ -0,0 +1,125 @@ +import NumberedCards from "../app/components/NumberedCards"; + +export default { + title: "Components/NumberedCards", + component: NumberedCards, + parameters: { + layout: "fullscreen", + docs: { + description: { + component: + "A component system for visually communicating multi-step workflows, processes, or value propositions. The component's modular design with NumberedCard and SectionNumber sub-components makes it ideal for explaining any sequential process while maintaining brand consistency and accessibility standards across the design system.", + }, + }, + }, + argTypes: { + title: { + control: { type: "text" }, + description: "The main title for the section", + }, + subtitle: { + control: { type: "text" }, + description: "The subtitle text below the main title", + }, + cards: { + control: { type: "object" }, + description: + "Array of card objects with text, iconShape, and iconColor properties", + }, + }, + tags: ["autodocs"], +}; + +export const Default = { + args: { + title: "How CommunityRule works", + subtitle: "Here's a quick overview of the process, from start to finish.", + cards: [ + { + text: "Document how your community makes decisions", + iconShape: "blob", + iconColor: "green", + }, + { + text: "Build an operating manual for a successful community", + iconShape: "gear", + iconColor: "purple", + }, + { + text: "Get a link to your manual for your group to review and evolve", + iconShape: "star", + iconColor: "orange", + }, + ], + }, +}; + +export const CustomContent = { + args: { + title: "Our Process", + subtitle: "Follow these simple steps to get started with your project.", + cards: [ + { + text: "Define your project requirements and goals", + iconShape: "blob", + iconColor: "green", + }, + { + text: "Collaborate with our team to create the perfect solution", + iconShape: "gear", + iconColor: "purple", + }, + { + text: "Launch and iterate based on user feedback", + iconShape: "star", + iconColor: "orange", + }, + { + text: "Scale and optimize for continued success", + iconShape: "blob", + iconColor: "blue", + }, + ], + }, + parameters: { + docs: { + description: { + story: + "Example with custom content and four cards to show flexibility.", + }, + }, + }, +}; + +export const ResponsiveBreakpoints = { + args: { + title: "Responsive Design Test", + subtitle: + "This story demonstrates how the component adapts across different breakpoints: xsm, sm, lg, and xl.", + cards: [ + { + text: "Mobile-first design approach", + iconShape: "blob", + iconColor: "green", + }, + { + text: "Tablet and desktop optimization", + iconShape: "gear", + iconColor: "purple", + }, + { + text: "Large screen layouts and spacing", + iconShape: "star", + iconColor: "orange", + }, + ], + }, + parameters: { + docs: { + description: { + story: + "Test the responsive behavior by resizing your browser window or using the viewport controls in Storybook.", + }, + }, + }, +}; diff --git a/stories/SectionHeader.stories.js b/stories/SectionHeader.stories.js new file mode 100644 index 0000000..40bf7b0 --- /dev/null +++ b/stories/SectionHeader.stories.js @@ -0,0 +1,106 @@ +import SectionHeader from "../app/components/SectionHeader"; + +export default { + title: "Components/SectionHeader", + component: SectionHeader, + parameters: { + layout: "centered", + docs: { + description: { + component: + "A section header component that displays a title and subtitle with responsive typography and layout. Supports different title text for large breakpoints and maintains consistent spacing across all screen sizes.", + }, + }, + }, + argTypes: { + title: { + control: { type: "text" }, + description: "The main title text (used for xsm and sm breakpoints)", + }, + subtitle: { + control: { type: "text" }, + description: "The subtitle text below the main title", + }, + titleLg: { + control: { type: "text" }, + description: + "The title text for lg and xl breakpoints (optional, falls back to title)", + }, + }, + tags: ["autodocs"], +}; + +export const Default = { + args: { + title: "How CommunityRule works", + subtitle: "Here's a quick overview of the process, from start to finish.", + titleLg: "How CommunityRule helps", + }, +}; + +export const CustomContent = { + args: { + title: "Our Mission", + subtitle: + "We're dedicated to helping communities thrive through better decision-making processes and transparent governance structures.", + titleLg: "Building Better Communities", + }, + parameters: { + docs: { + description: { + story: + "Example with custom content to show the flexibility of the component.", + }, + }, + }, +}; + +export const LongSubtitle = { + args: { + title: "Complex Process", + subtitle: + "This is a much longer subtitle that demonstrates how the component handles extended text content across different breakpoints and layout configurations.", + titleLg: "Complex Process Simplified", + }, + parameters: { + docs: { + description: { + story: + "Demonstrates how the component handles longer subtitle text across different breakpoints.", + }, + }, + }, +}; + +export const ResponsiveTest = { + args: { + title: "Responsive Design", + subtitle: + "Test the responsive behavior by resizing your browser window or using the viewport controls in Storybook.", + titleLg: "Responsive Design Test", + }, + parameters: { + docs: { + description: { + story: + "Test the responsive behavior by resizing your browser window or using the viewport controls in Storybook.", + }, + }, + }, +}; + +export const WithoutTitleLg = { + args: { + title: "Simple Header", + subtitle: + "This example doesn't specify a titleLg prop, so it will use the same title text across all breakpoints.", + }, + parameters: { + docs: { + description: { + story: + "Shows the component without a titleLg prop, demonstrating the fallback behavior.", + }, + }, + }, +}; diff --git a/stories/SectionNumber.stories.js b/stories/SectionNumber.stories.js new file mode 100644 index 0000000..b0287c6 --- /dev/null +++ b/stories/SectionNumber.stories.js @@ -0,0 +1,78 @@ +import SectionNumber from "../app/components/SectionNumber"; + +export default { + title: "Components/SectionNumber", + component: SectionNumber, + parameters: { + layout: "centered", + docs: { + description: { + component: + "A numbered icon component that displays a number overlaid on a PNG background image. The component uses different PNG images for numbers 1, 2, and 3, with the image extending beyond the 40px container size.", + }, + }, + }, + argTypes: { + number: { + control: { type: "number", min: 1, max: 3 }, + description: "The number to display (1, 2, or 3)", + }, + }, + tags: ["autodocs"], +}; + +export const NumberOne = { + args: { + number: 1, + }, +}; + +export const NumberTwo = { + args: { + number: 2, + }, +}; + +export const NumberThree = { + args: { + number: 3, + }, +}; + +export const AllNumbers = { + render: () => ( +
+ + + +
+ ), + parameters: { + docs: { + description: { + story: + "Shows all three numbered icons side by side to demonstrate the different PNG backgrounds.", + }, + }, + }, +}; + +export const WithBackground = { + render: () => ( +
+
+ + + +
+
+ ), + parameters: { + docs: { + description: { + story: + "Shows the numbered icons on a background to demonstrate how the PNG images extend beyond the container.", + }, + }, + }, +}; From efd483c1384dd8734e7bedeed2a941ad92fb535a Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Mon, 18 Aug 2025 07:49:10 -0600 Subject: [PATCH 5/5] Schema added to components --- app/components/Footer.js | 233 +++++++++++++++++--------------- app/components/Header.js | 168 +++++++++++++---------- app/components/HeaderTab.js | 2 +- app/components/HomeHeader.js | 180 +++++++++++++----------- app/components/NumberedCards.js | 96 +++++++------ 5 files changed, 379 insertions(+), 300 deletions(-) diff --git a/app/components/Footer.js b/app/components/Footer.js index d9bfcbf..cc7b60d 100644 --- a/app/components/Footer.js +++ b/app/components/Footer.js @@ -2,10 +2,28 @@ import Logo from "./Logo"; import Separator from "./Separator"; export default function Footer() { + // Schema markup for organization information + const schemaData = { + "@context": "https://schema.org", + "@type": "Organization", + name: "Media Economies Design Lab", + email: "medlab@colorado.edu", + url: "https://communityrule.com", + sameAs: [ + "https://bsky.app/profile/medlabboulder", + "https://gitlab.com/medlabboulder", + ], + }; + return ( - + ); } diff --git a/app/components/Header.js b/app/components/Header.js index ef622a0..d8ef688 100644 --- a/app/components/Header.js +++ b/app/components/Header.js @@ -6,6 +6,18 @@ import AvatarContainer from "./AvatarContainer"; import Avatar from "./Avatar"; export default function Header({ onToggle }) { + // Schema markup for site navigation + const schemaData = { + "@context": "https://schema.org", + "@type": "WebSite", + name: "CommunityRule", + url: "https://communityrule.com", + potentialAction: { + "@type": "SearchAction", + target: "https://communityrule.com/search?q={search_term_string}", + "query-input": "required name=search_term_string", + }, + }; const navigationItems = [ { href: "#", text: "Use cases", extraPadding: true }, { href: "#", text: "Learn" }, @@ -88,96 +100,104 @@ export default function Header({ onToggle }) { }; return ( -
-