From b448772b307c6dff237d799c5cb61bad5781a5ec Mon Sep 17 00:00:00 2001 From: Phuoc Nguyen Date: Mon, 19 Sep 2022 13:26:26 +0700 Subject: [PATCH] feat: Add card pattern --- contents/_includes/patterns/card.njk | 7 ++ contents/card.md | 46 ++++++++++ contents/index.njk | 62 +++++++------- pages/card/index.tsx | 93 --------------------- patterns/card/Cover.tsx | 43 ---------- styles/blocks/{_card.scss => _pattern.scss} | 6 +- styles/index.scss | 3 +- styles/patterns/_card.scss | 19 +++++ 8 files changed, 111 insertions(+), 168 deletions(-) create mode 100644 contents/_includes/patterns/card.njk create mode 100644 contents/card.md delete mode 100644 pages/card/index.tsx delete mode 100644 patterns/card/Cover.tsx rename styles/blocks/{_card.scss => _pattern.scss} (89%) create mode 100644 styles/patterns/_card.scss diff --git a/contents/_includes/patterns/card.njk b/contents/_includes/patterns/card.njk new file mode 100644 index 0000000..4d9f9ca --- /dev/null +++ b/contents/_includes/patterns/card.njk @@ -0,0 +1,7 @@ +
+
+
+
+ {% lines "hor", 5 %} +
+
\ No newline at end of file diff --git a/contents/card.md b/contents/card.md new file mode 100644 index 0000000..ebb373b --- /dev/null +++ b/contents/card.md @@ -0,0 +1,46 @@ +--- +layout: layouts/post.njk +title: Card +description: Create a card with CSS flexbox +keywords: css card, css flexbox +--- + +## HTML + +```html +
+ +
+ ... +
+ + +
+ ... +
+ ... +
+``` + +## CSS + +```css +.card { + display: flex; + flex-direction: column; +} + +.card__cover { + height: 20rem; + width: 100%; +} + +.card__content { + /* Take available height */ + flex: 1; +} +``` + +{% demo %} +{% include "patterns/card.njk" %} +{% enddemo %} diff --git a/contents/index.njk b/contents/index.njk index 05d74cb..298a497 100644 --- a/contents/index.njk +++ b/contents/index.njk @@ -13,46 +13,52 @@ eleventyExcludeFromCollections: true

Display

-
- -
{% include "patterns/accordion.njk" %}
-
Accordion
+
-
- -
{% include "patterns/arrow-buttons.njk" %}
-
Arrow buttons
+
-
- -
{% include "patterns/avatar.njk" %}
-
Avatar
+
-
- -
{% include "patterns/avatar-list.njk" %}
-
Avatar list
+
-
- -
{% include "patterns/badge.njk" %}
-
Badge
+
-
- -
{% include "patterns/centering.njk" %}
-
Centering
+
- diff --git a/pages/card/index.tsx b/pages/card/index.tsx deleted file mode 100644 index b1b6f68..0000000 --- a/pages/card/index.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import * as React from 'react'; -import Head from 'next/head'; -import { Spacer } from '@1milligram/design'; - -import { RelatedPatterns } from '../../components/RelatedPatterns'; -import { Pattern } from '../../constants/Pattern'; -import { PatternLayout } from '../../layouts/PatternLayout'; -import Block from '../../placeholders/Block'; -import BrowserFrame from '../../placeholders/BrowserFrame'; -import Rectangle from '../../placeholders/Rectangle'; - -const Details: React.FC<{}> = () => { - return ( - - - - - - - - - -
- ... -
- - -
- ... -
- ... -
-`} - css={` - .card { - display: flex; - flex-direction: column; - } - - .card__cover { - height: 150px; - width: 100%; - } - - .card__content { - /* Take available height */ - flex: 1; - } - `} - > -
-
- -
-
- -
-
- -
-
-
-
- - - - - - ); -}; - -export default Details; diff --git a/patterns/card/Cover.tsx b/patterns/card/Cover.tsx deleted file mode 100644 index f29a4f3..0000000 --- a/patterns/card/Cover.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import * as React from 'react'; - -import Frame from '../../placeholders/Frame'; -import Line from '../../placeholders/Line'; -import Rectangle from '../../placeholders/Rectangle'; - -const Cover: React.FC<{}> = () => { - return ( - -
-
- -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - ); -}; - -export default Cover; diff --git a/styles/blocks/_card.scss b/styles/blocks/_pattern.scss similarity index 89% rename from styles/blocks/_card.scss rename to styles/blocks/_pattern.scss index f552a3c..fa7e7e4 100644 --- a/styles/blocks/_card.scss +++ b/styles/blocks/_pattern.scss @@ -1,18 +1,18 @@ -.card__item { +.pattern__item { background-color: #fff; border-radius: 0.5rem; box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.1); padding: 0.5rem; text-align: center; } -.card__link { +.pattern__link { color: #6366f1; font-size: 1.25rem; font-weight: 500; text-align: center; text-decoration: none; } -.card__cover { +.pattern__cover { /* Center the content */ align-items: center; display: flex; diff --git a/styles/index.scss b/styles/index.scss index 23f7a15..2f16db7 100644 --- a/styles/index.scss +++ b/styles/index.scss @@ -1,6 +1,5 @@ @import './common'; -@import './blocks/card'; @import './blocks/category'; @import './blocks/example'; @import './blocks/hero'; @@ -8,6 +7,7 @@ @import './blocks/footer'; @import './blocks/header'; @import './blocks/nav'; +@import './blocks/pattern'; @import './blocks/post'; // Patterns @@ -16,6 +16,7 @@ @import './patterns/avatar'; @import './patterns/avatar-list'; @import './patterns/badge'; +@import './patterns/card'; @import './patterns/centering'; @import './patterns/close-button'; diff --git a/styles/patterns/_card.scss b/styles/patterns/_card.scss new file mode 100644 index 0000000..61cc62d --- /dev/null +++ b/styles/patterns/_card.scss @@ -0,0 +1,19 @@ +.card { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + border: 1px solid rgba(0, 0, 0, .3); + border-radius: 0.25rem; +} +.card__cover { + background: rgba(0, 0, 0, .3); + border-radius: 0.25rem; + height: 40%; + width: 100%; +} +.card__content { + /* Take available height */ + flex: 1; + padding: 0.5rem; +} \ No newline at end of file