From 0b058898be2b61fb8af7ec75ce71d64af5062e78 Mon Sep 17 00:00:00 2001 From: Sebastian Sebald Date: Mon, 17 Jun 2024 12:37:02 +0200 Subject: [PATCH] refa: compound components tutorial (#66) * simplify layout * container to manage content * improve all the things * start page * done! * small adjustments * wrapping! * tutorial section * finish welcome page * refa: compound components tutorial * update * add more content * fix breakout * small fixes * ! * first part done? * improve benefit example * update * remove breadcrumbs * add footer whitespace * add basic tabs example * update * update * fix tabs example * refa for the tabs compound component * update * update * update * finished explaining code? * update * update * done! * fix * use dvh * css fix * landing adjustments * improve text * done! * remove unsued import --- index.html | 2 + public/circuit-board.svg | 1 - public/hideout.svg | 3 + public/patterns.md | 1 + public/patterns.png | Bin 57921 -> 0 bytes public/texture.svg | 3 + public/topography.svg | 3 + src/components/Container.tsx | 51 +-- src/components/Preview.tsx | 19 ++ src/components/TeaserCard.tsx | 2 +- src/components/Title.tsx | 36 +++ src/index.css | 32 ++ src/index.tsx | 1 + src/routes/_components/About.tsx | 8 +- src/routes/_components/Footer.tsx | 2 +- src/routes/_components/Header.tsx | 2 +- src/routes/_components/Hero.tsx | 12 +- src/routes/_components/Tutorials.tsx | 14 +- .../_components/Breadcrumbs.tsx | 36 --- .../_components/BreadcrumbsExample.tsx | 17 - .../compound-component/_components/Link.tsx | 22 ++ .../_components/SelectExample.tsx | 68 ++++ .../compound-component/_components/Tab.tsx | 21 -- .../_components/TabPanel.tsx | 20 -- .../compound-component/_components/Tabs.tsx | 20 -- .../_components/Tabs/Context.tsx | 22 ++ .../_components/Tabs/Goto.tsx | 20 ++ .../_components/Tabs/TabItem.tsx | 21 ++ .../_components/Tabs/TabList.tsx | 11 + .../_components/Tabs/TabPanel.tsx | 17 + .../_components/Tabs/Tabs.tsx | 26 ++ .../_components/Tabs/index.ts | 1 + .../_components/TabsActionExample.tsx | 60 ++++ .../_components/TabsAnatomy.tsx | 120 +++++++ .../_components/TabsBasic.tsx | 28 ++ .../_components/TabsBasicExample.tsx | 56 ++++ .../_components/TabsExample.tsx | 70 ++-- .../_components/TabsGotoExample.tsx | 66 ++++ .../_components/compare-implementation.mdx | 34 ++ .../_components/tabs-basic.mdx | 95 ++++++ .../_components/tabs-compound-component.mdx | 110 +++++++ src/routes/compound-component/breadcrumbs.mdx | 94 ------ src/routes/compound-component/index.lazy.tsx | 11 +- src/routes/compound-component/index.mdx | 299 ++++++++++++++++-- .../preview.breadcrumbs.lazy.tsx | 8 - .../compound-component/preview.tabs.lazy.tsx | 6 - src/routes/compound-component/tabs.mdx | 51 --- src/routes/index.lazy.tsx | 1 - src/routes/index.mdx | 37 --- src/routes/state-management/index.lazy.tsx | 6 +- tailwind.config.js | 8 +- vite.config.ts | 2 +- 52 files changed, 1259 insertions(+), 417 deletions(-) delete mode 100644 public/circuit-board.svg create mode 100644 public/hideout.svg create mode 100644 public/patterns.md delete mode 100644 public/patterns.png create mode 100644 public/texture.svg create mode 100644 public/topography.svg create mode 100644 src/components/Preview.tsx create mode 100644 src/components/Title.tsx delete mode 100644 src/routes/compound-component/_components/Breadcrumbs.tsx delete mode 100644 src/routes/compound-component/_components/BreadcrumbsExample.tsx create mode 100644 src/routes/compound-component/_components/Link.tsx create mode 100644 src/routes/compound-component/_components/SelectExample.tsx delete mode 100644 src/routes/compound-component/_components/Tab.tsx delete mode 100644 src/routes/compound-component/_components/TabPanel.tsx delete mode 100644 src/routes/compound-component/_components/Tabs.tsx create mode 100644 src/routes/compound-component/_components/Tabs/Context.tsx create mode 100644 src/routes/compound-component/_components/Tabs/Goto.tsx create mode 100644 src/routes/compound-component/_components/Tabs/TabItem.tsx create mode 100644 src/routes/compound-component/_components/Tabs/TabList.tsx create mode 100644 src/routes/compound-component/_components/Tabs/TabPanel.tsx create mode 100644 src/routes/compound-component/_components/Tabs/Tabs.tsx create mode 100644 src/routes/compound-component/_components/Tabs/index.ts create mode 100644 src/routes/compound-component/_components/TabsActionExample.tsx create mode 100644 src/routes/compound-component/_components/TabsAnatomy.tsx create mode 100644 src/routes/compound-component/_components/TabsBasic.tsx create mode 100644 src/routes/compound-component/_components/TabsBasicExample.tsx create mode 100644 src/routes/compound-component/_components/TabsGotoExample.tsx create mode 100644 src/routes/compound-component/_components/compare-implementation.mdx create mode 100644 src/routes/compound-component/_components/tabs-basic.mdx create mode 100644 src/routes/compound-component/_components/tabs-compound-component.mdx delete mode 100644 src/routes/compound-component/breadcrumbs.mdx delete mode 100644 src/routes/compound-component/preview.breadcrumbs.lazy.tsx delete mode 100644 src/routes/compound-component/preview.tabs.lazy.tsx delete mode 100644 src/routes/compound-component/tabs.mdx delete mode 100644 src/routes/index.mdx diff --git a/index.html b/index.html index 78df1f5..9b84dce 100644 --- a/index.html +++ b/index.html @@ -16,6 +16,8 @@
+ +
diff --git a/public/circuit-board.svg b/public/circuit-board.svg deleted file mode 100644 index b0264ed..0000000 --- a/public/circuit-board.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/hideout.svg b/public/hideout.svg new file mode 100644 index 0000000..591c18a --- /dev/null +++ b/public/hideout.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/patterns.md b/public/patterns.md new file mode 100644 index 0000000..ce6e102 --- /dev/null +++ b/public/patterns.md @@ -0,0 +1 @@ +You can find patterns here: https://heropatterns.com/ diff --git a/public/patterns.png b/public/patterns.png deleted file mode 100644 index 4c84ece621e6b9568fb114beb2f002f0513a104a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57921 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 diff --git a/public/texture.svg b/public/texture.svg new file mode 100644 index 0000000..4c2f7f8 --- /dev/null +++ b/public/texture.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/topography.svg b/public/topography.svg new file mode 100644 index 0000000..aaf68af --- /dev/null +++ b/public/topography.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/components/Container.tsx b/src/components/Container.tsx index 532ff75..c50d096 100644 --- a/src/components/Container.tsx +++ b/src/components/Container.tsx @@ -1,22 +1,22 @@ import type { HTMLAttributes, ReactNode } from 'react'; import { cn } from '@marigold/system'; -export interface ContentCommonProps extends HTMLAttributes { +export interface CommonProps extends HTMLAttributes { className?: string; children?: ReactNode; } // Container // --------------- -export const Container = ({ - className, - children, - ...props -}: ContentCommonProps) => ( +/** + * Component used as a contaner for blocks, content and breakouts. + */ +export const Container = ({ className, children, ...props }: CommonProps) => (
); -// Content +// Block // --------------- -export const Content = ({ - className, - children, - ...props -}: ContentCommonProps) => ( +/** + * Component to wrap arbitrary elements in a block. + */ +export const Block = ({ className, children, ...props }: CommonProps) => (
{children}
); +// Content +// --------------- +/** + * Component to wrap text content into (optimized for readability). + */ +export const Content = ({ className, children, ...props }: CommonProps) => ( +
+ {children} +
+); + // Breakout // --------------- -export const Breakout = ({ - className, - children, - ...props -}: ContentCommonProps) => ( +/** + * Component to break out of the regular container grid. + * Spans to the full viewport width. + */ +export const Breakout = ({ className, children, ...props }: CommonProps) => (
has a child '[&:not(:has([data-container]))]:px-content', 'md:[&:not(:has([data-container]))]:px-content-md', diff --git a/src/components/Preview.tsx b/src/components/Preview.tsx new file mode 100644 index 0000000..837f37d --- /dev/null +++ b/src/components/Preview.tsx @@ -0,0 +1,19 @@ +import { CH } from '@code-hike/mdx/components'; +import type { ReactNode } from 'react'; + +export interface PreviewProps { + children?: ReactNode; +} + +const CodeHikePreview: any = CH['Preview']; + +export const Preview = ({ children }: PreviewProps) => ( + // @ts-ignore + +
+ {children} +
+
+); + +export default Preview; diff --git a/src/components/TeaserCard.tsx b/src/components/TeaserCard.tsx index 32dcf36..d1ec736 100644 --- a/src/components/TeaserCard.tsx +++ b/src/components/TeaserCard.tsx @@ -33,7 +33,7 @@ export interface TeaserListProps { export const TeaserList = ({ items }: TeaserListProps) => ( {items.map(props => ( - + ))} ); diff --git a/src/components/Title.tsx b/src/components/Title.tsx new file mode 100644 index 0000000..6264763 --- /dev/null +++ b/src/components/Title.tsx @@ -0,0 +1,36 @@ +import type { ReactNode } from 'react'; +import { Breakout } from './Container'; + +export interface TitleProps { + title?: ReactNode; + caption?: ReactNode; + image?: { + url: string; + size?: string; + }; +} + +export const Title = ({ title, caption, image }: TitleProps) => ( + +
+ +
+

{title}

+
{caption}
+
+ +); + +export default Title; diff --git a/src/index.css b/src/index.css index ea26b59..5732b55 100644 --- a/src/index.css +++ b/src/index.css @@ -22,6 +22,16 @@ max-width: none; } +.ch-codeblock, +.ch-preview, +.ch-scrollycoding { + margin: theme('spacing.8') 0; +} + +.ch-code-wrapper { + padding: 0 theme('spacing.1'); +} + .ch-scrollycoding-step-content { padding: theme('spacing.6'); } @@ -34,3 +44,25 @@ .ch-frame-buttons { display: none; } + +.ch-mini-browser .ch-frame-buttons { + display: flex; +} + +.ch-mini-browser .ch-frame-content { + flex-basis: auto; +} + +.ch-codeblock .ch-code-button, +.ch-codegroup .ch-editor-button { + display: none; +} + +.ch-codeblock:hover .ch-code-button, +.ch-codegroup:hover .ch-editor-button { + display: block; +} + +.ch-code-multiline-mark > .ch-code-button { + display: none !important; +} diff --git a/src/index.tsx b/src/index.tsx index 9d2670a..8b4aefb 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2,6 +2,7 @@ import ReactDOM from 'react-dom/client'; import { App } from './App'; import '@code-hike/mdx/styles'; +import '@marigold/theme-core/styles.css'; import './index.css'; const root = document.getElementById('app')!; diff --git a/src/routes/_components/About.tsx b/src/routes/_components/About.tsx index e6e9022..47e301b 100644 --- a/src/routes/_components/About.tsx +++ b/src/routes/_components/About.tsx @@ -1,9 +1,9 @@ -import { Content } from '@/components/Container'; -import { Columns, Inset, Message } from '@marigold/components'; +import { Block } from '@/components/Container'; +import { Columns, Message } from '@marigold/components'; import { Link } from '@tanstack/react-router'; export const About = () => ( - +

About

@@ -44,5 +44,5 @@ export const About = () => (

-
+ ); diff --git a/src/routes/_components/Footer.tsx b/src/routes/_components/Footer.tsx index 281db3a..50701c6 100644 --- a/src/routes/_components/Footer.tsx +++ b/src/routes/_components/Footer.tsx @@ -1,7 +1,7 @@ import { Link } from '@tanstack/react-router'; export const Footer = () => ( -