diff --git a/client/constants/Pattern.ts b/client/constants/Pattern.ts index 1efff21..485ea8f 100644 --- a/client/constants/Pattern.ts +++ b/client/constants/Pattern.ts @@ -24,6 +24,7 @@ enum Pattern { FeatureComparison = 'Feature comparison', FeatureList = 'Feature list', FixedAtCorner = 'Fixed at corner', + FixedAtSide = 'Fixed at side', FloatingLabel = 'Floating label', FullScreenMenu = 'Full screen menu', HolyGrail = 'Holy grail', diff --git a/client/layouts/Footer.tsx b/client/layouts/Footer.tsx index 2af6525..250a83c 100644 --- a/client/layouts/Footer.tsx +++ b/client/layouts/Footer.tsx @@ -150,6 +150,17 @@ const Footer: React.FC<{}> = () => {
;
+
  • +
    dev.to:
    + + @phuocng + +
    ;
    +
  • email:
    {
    + @@ -139,7 +140,6 @@ const ExplorePage = () => { - @@ -150,6 +150,7 @@ const ExplorePage = () => { + diff --git a/client/patterns/fixed-at-corner/Details.tsx b/client/patterns/fixed-at-corner/Details.tsx index 2e3cb17..4517860 100644 --- a/client/patterns/fixed-at-corner/Details.tsx +++ b/client/patterns/fixed-at-corner/Details.tsx @@ -70,7 +70,7 @@ const Details: React.FC<{}> = () => { `} />
    - + ); }; diff --git a/client/patterns/fixed-at-side/Cover.tsx b/client/patterns/fixed-at-side/Cover.tsx new file mode 100644 index 0000000..7377c5e --- /dev/null +++ b/client/patterns/fixed-at-side/Cover.tsx @@ -0,0 +1,31 @@ +import React from 'react'; + +import Frame from '../../placeholders/Frame'; + +const Cover: React.FC<{}> = () => { + return ( + +
    +
    +
    + + ); +}; + +export default Cover; diff --git a/client/patterns/fixed-at-side/Details.tsx b/client/patterns/fixed-at-side/Details.tsx new file mode 100644 index 0000000..b0ffaff --- /dev/null +++ b/client/patterns/fixed-at-side/Details.tsx @@ -0,0 +1,255 @@ +import React from 'react'; + +import Heading from '../../components/Heading'; +import RelatedPatterns from '../../components/RelatedPatterns'; +import Pattern from '../../constants/Pattern'; +import DetailsLayout from '../../layouts/DetailsLayout'; +import BrowserFrame from '../../placeholders/BrowserFrame'; + +const Details: React.FC<{}> = () => { + return ( + +
    + +
    +
    + )} + source={` + +
    + ... +
    +`} + /> +
    + +
    + + +
    +
    +

    A Feedback button

    +
    + Feedback +
    +
    + +
    +

    Navgiate between full page sections

    +
    +
    +
    +
    +
    +
    +
    + +
    +

    Social sharing toolbar

    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    + + +
    + ); +}; + +export default Details; diff --git a/client/placeholders/BrowserFrame.tsx b/client/placeholders/BrowserFrame.tsx index 1f85c28..4447470 100644 --- a/client/placeholders/BrowserFrame.tsx +++ b/client/placeholders/BrowserFrame.tsx @@ -4,7 +4,7 @@ import SampleCode from '../components/SampleCode'; interface BrowserFrameProps { content: React.ReactNode; - source: string; + source?: string; } const BrowserFrame: React.FC = ({ content, source }) => { @@ -55,21 +55,23 @@ const BrowserFrame: React.FC = ({ content, source }) => { width: '16px', }} /> -
    - -
    + {source && ( +
    + +
    + )}
    = ({ content, source }) => { > {content}
    -
    - -
    + {source && ( +
    + +
    + )} ); diff --git a/public/sitemap.xml b/public/sitemap.xml index 7f70f96..19af251 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -25,6 +25,7 @@ https://csslayout.io/patterns/feature-comparison https://csslayout.io/patterns/feature-list https://csslayout.io/patterns/fixed-at-corner + https://csslayout.io/patterns/fixed-at-side https://csslayout.io/patterns/floating-label https://csslayout.io/patterns/full-screen-menu https://csslayout.io/patterns/holy-grail