diff --git a/README.md b/README.md index 799a835..3f1ca04 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ A collection of popular layouts and patterns made with CSS: * Good practices (coming soon) * Accessibility (coming soon) +![CSS Layout](/public/images/screenshot.png) + ## Why Being a front-end engineer, I have to deal with a lot of layouts and components. diff --git a/client/Home.tsx b/client/Home.tsx index 06d6128..e15d163 100644 --- a/client/Home.tsx +++ b/client/Home.tsx @@ -2,6 +2,7 @@ import React from 'react'; import CoverCard from './components/CoverCard'; import Heading from './components/Heading'; +import Pattern from './constants/Pattern'; import useDocumentTitle from './hooks/useDocumentTitle'; import Layout from './layouts/Layout'; @@ -57,11 +58,11 @@ const Home = () => {
- - - - - + + + + +
@@ -69,37 +70,37 @@ const Home = () => {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/client/components/CoverCard.tsx b/client/components/CoverCard.tsx index 651aabd..d862514 100644 --- a/client/components/CoverCard.tsx +++ b/client/components/CoverCard.tsx @@ -1,11 +1,12 @@ import React from 'react'; import { Link } from 'react-router-dom'; +import Pattern from '../constants/Pattern'; import slug from '../helpers/slug'; import CoverLoader from '../loaders/CoverLoader'; interface CoverCardProps { - pattern: string; + pattern: Pattern; } const CoverCard: React.FC = ({ pattern }) => { diff --git a/client/components/RelatedPatterns.tsx b/client/components/RelatedPatterns.tsx index 06eb348..c9d4a47 100644 --- a/client/components/RelatedPatterns.tsx +++ b/client/components/RelatedPatterns.tsx @@ -1,10 +1,11 @@ import React, { useEffect } from 'react'; +import Pattern from '../constants/Pattern'; import CoverCard from './CoverCard'; import Heading from './Heading'; interface RelatedPatternsProps { - patterns: string[]; + patterns: Pattern[]; } const RelatedPatterns: React.FC = ({ patterns }) => { diff --git a/client/constants/Pattern.ts b/client/constants/Pattern.ts new file mode 100644 index 0000000..2fcc9fd --- /dev/null +++ b/client/constants/Pattern.ts @@ -0,0 +1,40 @@ +enum Pattern { + Badge = 'Badge', + Breadcrumb = 'Breadcrumb', + ButtonWithIcon = 'Button with icon', + Card = 'Card', + Centering = 'Centering', + DockedAtCorner = 'Docked at corner', + DotNavigation = 'Dot navigation', + FeatureList = 'Feature list', + FixedAtCorner = 'Fixed at corner', + HolyGrail = 'Holy grail', + InputAddOn = 'Input add-on', + MediaObject = 'Media object', + Menu = 'Menu', + Modal = 'Modal', + Notification = 'Notification', + Pagination = 'Pagination', + PreviousNextButtons = 'Previous next buttons', + PricingTable = 'Pricing table', + ProgressBar = 'Progress bar', + QuestionsAndAnswers = 'Questions and answers', + RadioSwitch = 'Radio switch', + SameHeightColumns = 'Same height columns', + SearchBox = 'Search box', + Separator = 'Separator', + Sidebar = 'Sidebar', + SimpleGrid = 'Simple grid', + Slider = 'Slider', + SplitNavigation = 'Split navigation', + SplitScreen = 'Split screen', + StepperInput = 'Stepper input', + StickyFooter = 'Sticky footer', + StickyHeader = 'Sticky header', + Switch = 'Switch', + Tab = 'Tab', + TogglePasswordVisibility = 'Toggle password visibility', + Wizard = 'Wizard', +} + +export default Pattern; diff --git a/client/loaders/CoverLoader.tsx b/client/loaders/CoverLoader.tsx index 0a5eac4..9a50c25 100644 --- a/client/loaders/CoverLoader.tsx +++ b/client/loaders/CoverLoader.tsx @@ -1,7 +1,9 @@ import loadable, { LoadableComponent } from '@loadable/component'; +import Pattern from '../constants/Pattern'; + interface CoverLoaderProps { - pattern: string; + pattern: Pattern; } const slug = (item: string) => item.toLowerCase().split(' ').join('-'); diff --git a/client/patterns/radio-switch/Details.tsx b/client/patterns/radio-switch/Details.tsx index b7c7d43..431cf1f 100644 --- a/client/patterns/radio-switch/Details.tsx +++ b/client/patterns/radio-switch/Details.tsx @@ -2,6 +2,7 @@ import React, { useState } 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'; @@ -79,7 +80,7 @@ const Details: React.FC<{}> = () => { - + ); }; diff --git a/client/patterns/switch/Details.tsx b/client/patterns/switch/Details.tsx index ead8306..b3123eb 100644 --- a/client/patterns/switch/Details.tsx +++ b/client/patterns/switch/Details.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; import RelatedPatterns from '../../components/RelatedPatterns'; +import Pattern from '../../constants/Pattern'; import DetailsLayout from '../../layouts/DetailsLayout'; import BrowserFrame from '../../placeholders/BrowserFrame'; @@ -65,7 +66,7 @@ const Details: React.FC<{}> = () => { `} /> - + ); }; diff --git a/package.json b/package.json index 87adb44..2397030 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "csslayout", "scripts": { - "copy": "rm -rf dist && mkdir dist && cp robots.txt dist && cp sitemap.xml dist", + "copy": "rm -rf dist && mkdir dist && cp -rf public/* dist", "dev": "npm run copy && webpack --mode development", "dev-server": "npm run copy && webpack-dev-server", "build": "npm run copy && webpack --mode production && npm run export", diff --git a/public/images/screenshot.png b/public/images/screenshot.png new file mode 100644 index 0000000..9fd930f Binary files /dev/null and b/public/images/screenshot.png differ diff --git a/robots.txt b/public/robots.txt similarity index 100% rename from robots.txt rename to public/robots.txt diff --git a/sitemap.xml b/public/sitemap.xml similarity index 100% rename from sitemap.xml rename to public/sitemap.xml