diff --git a/client/constants/Pattern.ts b/client/constants/Pattern.ts index 544d891..abb180c 100644 --- a/client/constants/Pattern.ts +++ b/client/constants/Pattern.ts @@ -18,6 +18,7 @@ enum Pattern { CircularNavigation = 'Circular navigation', CloseButton = 'Close button', ColorSwatch = 'Color swatch', + ConcaveCorners = 'Concave corners', CookieBanner = 'Cookie banner', CornerRibbon = 'Corner ribbon', CurvedBackground = 'Curved background', diff --git a/client/pages/ExplorePage.tsx b/client/pages/ExplorePage.tsx index 8eb088f..f0c646a 100644 --- a/client/pages/ExplorePage.tsx +++ b/client/pages/ExplorePage.tsx @@ -120,6 +120,7 @@ const ExplorePage = () => { + diff --git a/client/patterns/concave-corners/Cover.tsx b/client/patterns/concave-corners/Cover.tsx new file mode 100644 index 0000000..22b72b2 --- /dev/null +++ b/client/patterns/concave-corners/Cover.tsx @@ -0,0 +1,76 @@ +/** * A collection of popular layouts and patterns made with CSS (https://csslayout.io) + * (c) 2019 - 2021 Nguyen Huu Phuoc + */ + +import * as React from 'react'; + +import Frame from '../../placeholders/Frame'; + +const Cover: React.FC<{}> = () => { + return ( + +
+
+
+
+
+
+
+
+ + ); +}; + +export default Cover; diff --git a/client/patterns/concave-corners/Details.tsx b/client/patterns/concave-corners/Details.tsx new file mode 100644 index 0000000..0e9c23b --- /dev/null +++ b/client/patterns/concave-corners/Details.tsx @@ -0,0 +1,139 @@ +/** + * A collection of popular layouts and patterns made with CSS (https://csslayout.io) + * (c) 2019 - 2021 Nguyen Huu Phuoc + */ + +import * as React from 'react'; +import { Helmet } from 'react-helmet'; + +import RelatedPatterns from '../../components/RelatedPatterns'; +import Pattern from '../../constants/Pattern'; +import DetailsLayout from '../../layouts/DetailsLayout'; +import BrowserFrame from '../../placeholders/BrowserFrame'; + +import './concave-corners.css'; + +const Details: React.FC<{}> = () => { + return ( + + + + + + + + + +
+ + +
+ + +
+ + +
+ + + ... +
+`} +css={` +:root { + --concave-corners-background: rgba(0, 0, 0, .3); + --concave-corners-size: 1rem; +} + +.concave-corners { + background-color: var(--concave-corners-background); + + /* Used to position the corners */ + position: relative; + + /* Misc */ + height: 100%; +} + +.concave-corners__corner { + /* Absolute position */ + position: absolute; + + /* Size */ + height: var(--concave-corners-size); + width: var(--concave-corners-size); + + background: #FFF; +} + +.concave-corners__corner--tl { + /* Position */ + left: 0; + top: 0; + + /* Border radius */ + border-radius: 0 0 var(--concave-corners-size) 0; +} + +.concave-corners__corner--tr { + /* Position */ + right: 0; + top: 0; + + /* Border radius */ + border-radius: 0 0 0 var(--concave-corners-size); +} + +.concave-corners__corner--bl { + /* Position */ + bottom: 0; + left: 0; + + /* Border radius */ + border-radius: 0 var(--concave-corners-size) 0 0; +} + +.concave-corners__corner--br { + /* Position */ + bottom: 0; + right: 0; + + /* Border radius */ + border-radius: var(--concave-corners-size) 0 0 0; +} +`} + > +
+
+
+
+
+
+
+
+
+
+ + + + + ); +}; + +export default Details; diff --git a/client/patterns/concave-corners/concave-corners.css b/client/patterns/concave-corners/concave-corners.css new file mode 100644 index 0000000..c7155ae --- /dev/null +++ b/client/patterns/concave-corners/concave-corners.css @@ -0,0 +1,66 @@ +/** + * A collection of popular layouts and patterns made with CSS (https://csslayout.io) + * (c) 2019 - 2021 Nguyen Huu Phuoc + */ + +:root { + --concave-corners-background: rgba(0, 0, 0, .3); + --concave-corners-size: 1rem; +} + +.concave-corners { + background-color: var(--concave-corners-background); + + /* Used to position the corners */ + position: relative; + + /* Misc */ + height: 100%; +} + +.concave-corners__corner { + /* Absolute position */ + position: absolute; + + /* Size */ + height: var(--concave-corners-size); + width: var(--concave-corners-size); + + background: #FFF; +} + +.concave-corners__corner--tl { + /* Position */ + left: 0; + top: 0; + + /* Border radius */ + border-radius: 0 0 var(--concave-corners-size) 0; +} + +.concave-corners__corner--tr { + /* Position */ + right: 0; + top: 0; + + /* Border radius */ + border-radius: 0 0 0 var(--concave-corners-size); +} + +.concave-corners__corner--bl { + /* Position */ + bottom: 0; + left: 0; + + /* Border radius */ + border-radius: 0 var(--concave-corners-size) 0 0; +} + +.concave-corners__corner--br { + /* Position */ + bottom: 0; + right: 0; + + /* Border radius */ + border-radius: var(--concave-corners-size) 0 0 0; +} \ No newline at end of file diff --git a/client/patterns/inverted-corners/Details.tsx b/client/patterns/inverted-corners/Details.tsx index aa9ad02..f4d6708 100644 --- a/client/patterns/inverted-corners/Details.tsx +++ b/client/patterns/inverted-corners/Details.tsx @@ -7,6 +7,7 @@ import * as React from 'react'; import { Helmet } from 'react-helmet'; 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'; @@ -94,6 +95,8 @@ css={`
Speech Bubble
+ + ); }; diff --git a/client/placeholders/BrowserFrame.tsx b/client/placeholders/BrowserFrame.tsx index acae7c8..6c4ef83 100644 --- a/client/placeholders/BrowserFrame.tsx +++ b/client/placeholders/BrowserFrame.tsx @@ -16,8 +16,12 @@ interface BrowserFrameProps { const BrowserFrame: React.FC = ({ children, css, html }) => { return ( <> - - +
+ +
+
+ +
{children}
diff --git a/client/placeholders/browserFrame.css b/client/placeholders/browserFrame.css index 48201d0..188aaac 100644 --- a/client/placeholders/browserFrame.css +++ b/client/placeholders/browserFrame.css @@ -7,4 +7,8 @@ border: 1px solid rgba(0, 0, 0, 0.2); height: 32rem; overflow: auto; +} + +.demo__html { + border-bottom: 1px solid rgba(0, 0, 0, 0.5); } \ No newline at end of file diff --git a/public/assets/patterns/concave-corners.png b/public/assets/patterns/concave-corners.png new file mode 100644 index 0000000..db2b111 Binary files /dev/null and b/public/assets/patterns/concave-corners.png differ diff --git a/public/sitemap.xml b/public/sitemap.xml index dc97d3b..81de73a 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -16,6 +16,8 @@ https://csslayout.io/patterns/chip https://csslayout.io/patterns/circular-navigation https://csslayout.io/patterns/close-button + https://csslayout.io/patterns/color-swatch + https://csslayout.io/patterns/concave-corners https://csslayout.io/patterns/cookie-banner https://csslayout.io/patterns/corner-ribbon https://csslayout.io/patterns/curved-background @@ -41,6 +43,7 @@ https://csslayout.io/patterns/holy-grail https://csslayout.io/patterns/initial-avatar https://csslayout.io/patterns/input-addon + https://csslayout.io/patterns/inverted-corners https://csslayout.io/patterns/keyboard-shortcut https://csslayout.io/patterns/layered-card https://csslayout.io/patterns/lined-paper