1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-06 14:16:50 +02:00

Merge pull request #97 from phuoc-ng/seo-tags

Add keywords and description tags to all pages
This commit is contained in:
phuoc-ng
2019-12-23 22:22:46 +07:00
committed by GitHub
78 changed files with 420 additions and 8 deletions

View File

@@ -1,8 +1,9 @@
<html>
<html lang="en">
<head>
<title>CSS layout</title>
<meta charset="utf-8" />
<title>CSS layout</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Nguyen Huu Phuoc" />
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap" rel="stylesheet">
</head>
<body style="width: 100%;">

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import CoverCard from '../components/CoverCard';
@@ -14,6 +15,10 @@ const ExplorePage = () => {
return (
<Layout>
<Helmet>
<meta name="description" content="CSS layouts and patterns" />
<meta name="keywords" content="css display, css flexbox, css grid, css layouts, flex, flexbox, flexbox cheatsheet, web design, web template" />
</Helmet>
<div style={{ margin: '32px 0' }}>
<Link
to="/"

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import './home.css';
@@ -16,6 +17,10 @@ const HomePage = () => {
return (
<Layout>
<Helmet>
<meta name="description" content="CSS layouts and patterns" />
<meta name="keywords" content="css display, css flexbox, css grid, css layouts, flex, flexbox, flexbox cheatsheet, web design, web template" />
</Helmet>
<div
style={{
border: '1px solid rgba(0, 0, 0, 0.2)',

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -52,6 +53,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Accordion">
<Helmet>
<meta name="description" content="Create an accordion with CSS flexbox" />
<meta name="keywords" content="css accordion, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -28,6 +29,10 @@ const Avatar: React.FC<{}> = ({ children }) => {
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Avatar list">
<Helmet>
<meta name="description" content="Create an avatar list with CSS flexbox" />
<meta name="keywords" content="css avatar, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -8,6 +9,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Avatar">
<Helmet>
<meta name="description" content="Create an avatar component with CSS flexbox" />
<meta name="keywords" content="css avatar, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -8,6 +9,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Badge">
<Helmet>
<meta name="description" content="Create a badge component with CSS flexbox" />
<meta name="keywords" content="css badge, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Breadcrumb">
<Helmet>
<meta name="description" content="Create a breadcrumb with CSS flexbox" />
<meta name="keywords" content="css breadcrumb, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Button with icon">
<Helmet>
<meta name="description" content="Create an icon button with CSS flexbox" />
<meta name="keywords" content="css flexbox, css icon button" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Card">
<Helmet>
<meta name="description" content="Create a card with CSS flexbox" />
<meta name="keywords" content="css card, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Centering">
<Helmet>
<meta name="description" content="Center an element with CSS flexbox" />
<meta name="keywords" content="css centering, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -10,6 +11,10 @@ import InputChip from './InputChip';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Chip">
<Helmet>
<meta name="description" content="Create a chip component with CSS flexbox" />
<meta name="keywords" content="css chip, css flexbox, css tag" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can use a <Link to='/patterns/close-button'>close button</Link> to remove a chip.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -43,6 +44,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Circular navigation">
<Helmet>
<meta name="description" content="Create a circular navigation with CSS flexbox" />
<meta name="keywords" content="css circular navigation, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -8,6 +9,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Close button">
<Helmet>
<meta name="description" content="Create a close button with CSS flexbox" />
<meta name="keywords" content="css close button, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -10,6 +11,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Cookie banner">
<Helmet>
<meta name="description" content="Create a cookie banner with CSS flexbox" />
<meta name="keywords" content="css cookie banner, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import Heading from '../../components/Heading';
@@ -10,6 +11,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Corner ribbon">
<Helmet>
<meta name="description" content="Create a corner ribbon with CSS flexbox" />
<meta name="keywords" content="css flexbox, css ribbon" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -56,6 +57,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Custom checkbox button">
<Helmet>
<meta name="description" content="Create a custom checkbox button with CSS flexbox" />
<meta name="keywords" content="css checkbox, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -57,6 +58,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Custom radio button">
<Helmet>
<meta name="description" content="Create a custom radio button with CSS flexbox" />
<meta name="keywords" content="css flexbox, css radio" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import Heading from '../../components/Heading';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -10,6 +11,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Docked at corner">
<Helmet>
<meta name="description" content="Dock an element at corner with CSS" />
<meta name="keywords" content="css docked, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import Heading from '../../components/Heading';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -11,6 +12,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Dot leader">
<Helmet>
<meta name="description" content="Create dot leaders with CSS flexbox" />
<meta name="keywords" content="css dot leader, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -31,6 +32,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Dot navigation">
<Helmet>
<meta name="description" content="Create dot navigation with CSS flexbox" />
<meta name="keywords" content="css dot navigation, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -7,6 +8,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Drawer">
<Helmet>
<meta name="description" content="Create a drawer navigation with CSS" />
<meta name="keywords" content="css drawer, css off-canvas" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
This pattern is also known as off-canvas.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -7,6 +8,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Drop area">
<Helmet>
<meta name="description" content="Create a dropping area with CSS flexbox" />
<meta name="keywords" content="css dropping area, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,16 +1,18 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import './dropcap.css';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
import BrowserFrame from '../../placeholders/BrowserFrame';
import Rectangle from '../../placeholders/Rectangle';
import Square from '../../placeholders/Square';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Drop cap">
<Helmet>
<meta name="description" content="Create a drop cap with CSS" />
<meta name="keywords" content="css drop cap" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import './dropdown.css';
@@ -13,6 +14,10 @@ import Triangle from '../../placeholders/Triangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Dropdown">
<Helmet>
<meta name="description" content="Create a dropdown with CSS" />
<meta name="keywords" content="css dropdown, css menu" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
Move the mouse over the button to see the dropdown.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -11,6 +12,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Feature comparison">
<Helmet>
<meta name="description" content="Create a feature comparison list with CSS flexbox" />
<meta name="keywords" content="css feature comparison, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -11,6 +12,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Feature list">
<Helmet>
<meta name="description" content="Create a feature list with CSS flexbox" />
<meta name="keywords" content="css feature list, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import Triangle from '../../placeholders/Triangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Fixed at corner">
<Helmet>
<meta name="description" content="Fix an element at corner with CSS" />
<meta name="keywords" content="css fixed" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import Heading from '../../components/Heading';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -9,6 +10,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Fixed at side">
<Helmet>
<meta name="description" content="Fix an element at the middle of side with CSS" />
<meta name="keywords" content="css fixed" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import './floating-label.css';
@@ -8,6 +9,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Floating label">
<Helmet>
<meta name="description" content="Create a floating label with CSS" />
<meta name="keywords" content="css floating label, placeholder shown" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
Type something in the input to see how the label is shown up.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Full screen menu">
<Helmet>
<meta name="description" content="Create a full screen menu with CSS flexbox" />
<meta name="keywords" content="css fixed, css flexbox, css menu" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Holy grail">
<Helmet>
<meta name="description" content="Create a holy grail layout with CSS flexbox" />
<meta name="keywords" content="css flexbox, css holy grail layout, css layout" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -9,6 +10,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Initial avatar">
<Helmet>
<meta name="description" content="Create an initial avatar with CSS" />
<meta name="keywords" content="css avatar" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
To center the content, you also can use other technique demonstrated in

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Input add-on">
<Helmet>
<meta name="description" content="Create an input add-on with CSS flexbox" />
<meta name="keywords" content="css flexbox, css input add-on" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import Heading from '../../components/Heading';
@@ -12,7 +13,7 @@ interface ItemProps {
const Item: React.FC<ItemProps> = ({ action, keys }) => {
return (
<dl
<div
style={{
alignItems: 'center',
display: 'flex',
@@ -33,13 +34,17 @@ const Item: React.FC<ItemProps> = ({ action, keys }) => {
>
{keys}
</kbd>
</dl>
</div>
);
};
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Keyboard shortcut">
<Helmet>
<meta name="description" content="Create a keyboard shortcut with CSS" />
<meta name="keywords" content="kbd tag, keyboard shortcut" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
We use the native <code>kbd</code> tag to display the keyboard shortcut.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -9,6 +10,10 @@ import Square from '../../placeholders/Square';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Media object">
<Helmet>
<meta name="description" content="Create a media object with CSS flexbox" />
<meta name="keywords" content="css flexbox, media object" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import './menu.css';
@@ -12,6 +13,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Menu">
<Helmet>
<meta name="description" content="Create a menu with CSS flexbox" />
<meta name="keywords" content="css flexbox, css menu" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import DetailsLayout from '../../layouts/DetailsLayout';
@@ -10,6 +11,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Modal">
<Helmet>
<meta name="description" content="Create a modal with CSS flexbox" />
<meta name="keywords" content="css dialog, css flexbox, css modal" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can use the <Link to='/patterns/close-button'>close button</Link> to

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import DetailsLayout from '../../layouts/DetailsLayout';
@@ -9,6 +10,10 @@ import Circle from '../../placeholders/Circle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Notification">
<Helmet>
<meta name="description" content="Create a notification with CSS flexbox" />
<meta name="keywords" content="css alert, css flexbox, css notification" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can use the <Link to='/patterns/close-button'>close button</Link> to

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import Triangle from '../../placeholders/Triangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Overlay play button">
<Helmet>
<meta name="description" content="Create an overlay play button with CSS flexbox" />
<meta name="keywords" content="css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Pagination">
<Helmet>
<meta name="description" content="Create a pagination with CSS flexbox" />
<meta name="keywords" content="css flexbox, css pagination" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -8,6 +9,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Popover arrow">
<Helmet>
<meta name="description" content="Create a popover arrow with CSS" />
<meta name="keywords" content="css arrow, css popover" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import Circle from '../../placeholders/Circle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Presence indicator">
<Helmet>
<meta name="description" content="Create a presence indicator with CSS" />
<meta name="keywords" content="css indicator" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Previous and next buttons">
<Helmet>
<meta name="description" content="Create previous and next buttons with CSS flexbox" />
<meta name="keywords" content="css flexbox, css pagination" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import { Link } from 'react-router-dom';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -12,6 +13,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Pricing table">
<Helmet>
<meta name="description" content="Create a pricing table with CSS flexbox" />
<meta name="keywords" content="css flexbox, css pricing table" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can <Link to='/patterns/ribbon'>add</Link> <Link to='/patterns/corner-ribbon'>a ribbon</Link> to

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import useInterval from '../../hooks/useInterval';
import DetailsLayout from '../../layouts/DetailsLayout';
@@ -12,6 +13,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Progress bar">
<Helmet>
<meta name="description" content="Create a progress bar with CSS flexbox" />
<meta name="keywords" content="css flexbox, css progress bar" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import Heading from '../../components/Heading';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -28,6 +29,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Property list">
<Helmet>
<meta name="description" content="Create a property list with CSS flexbox" />
<meta name="keywords" content="css flexbox, property list" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -48,6 +49,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Questions and answers">
<Helmet>
<meta name="description" content="Create a questions and answers section with CSS flexbox" />
<meta name="keywords" content="css accordion, css faq, css flexbox" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -67,6 +68,10 @@ const RadialProgress: React.FC<RadialProgressProps> = ({ percentages }) => {
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Radial progress bar">
<Helmet>
<meta name="description" content="Create a radial progress bar with CSS flexbox" />
<meta name="keywords" content="css clip rect, css flexbox, css progress bar" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import './radioButtonGroup.css';
@@ -42,6 +43,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Radio button group">
<Helmet>
<meta name="description" content="Create a radio button group with CSS flexbox" />
<meta name="keywords" content="css flexbox, css radio button" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import Heading from '../../components/Heading';
import RelatedPatterns from '../../components/RelatedPatterns';
@@ -12,6 +13,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Radio switch">
<Helmet>
<meta name="description" content="Create a radio switch with CSS flexbox" />
<meta name="keywords" content="css flexbox, css radio switch, css switch" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Star from './Star';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Rating">
<Helmet>
<meta name="description" content="Create a star rating with CSS flexbox" />
<meta name="keywords" content="css flexbox, css star rating" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -6,6 +7,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Resizable element">
<Helmet>
<meta name="description" content="Create resizable indicators with CSS" />
<meta name="keywords" content="css resizable, css resize cursor" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can move the mouse over each squares located at the corners and the middle of sides to see

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Ribbon">
<Helmet>
<meta name="description" content="Create a ribbon with CSS" />
<meta name="keywords" content="css ribbon" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Same height columns">
<Helmet>
<meta name="description" content="Create same height columns with CSS flexbox" />
<meta name="keywords" content="css flexbox, css layout, css same height columns" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Circle from '../../placeholders/Circle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Search box">
<Helmet>
<meta name="description" content="Create a search box with CSS flexbox" />
<meta name="keywords" content="css flexbox, css search box" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Separator">
<Helmet>
<meta name="description" content="Create a separator with CSS flexbox" />
<meta name="keywords" content="css divider, css flexbox, css separator" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -7,6 +8,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Sidebar">
<Helmet>
<meta name="description" content="Create a sidebar with CSS flexbox" />
<meta name="keywords" content="css flexbox, css layout, css sidebar" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>Try to scroll the main content!</div>
<BrowserFrame

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -7,6 +8,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Simple grid">
<Helmet>
<meta name="description" content="Create a simple grid with CSS flexbox" />
<meta name="keywords" content="css flexbox, css flexbox grid, css grid, css layout" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Slider">
<Helmet>
<meta name="description" content="Create a slider with CSS flexbox" />
<meta name="keywords" content="css flexbox, css slider" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -14,6 +15,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Spin button">
<Helmet>
<meta name="description" content="Create a spin button with CSS flexbox" />
<meta name="keywords" content="css flexbox, css spin button" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Split navigation">
<Helmet>
<meta name="description" content="Create a split navigation with CSS flexbox" />
<meta name="keywords" content="css flexbox, css menu, css navigation, css split navigation" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -9,6 +10,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Split screen">
<Helmet>
<meta name="description" content="Create a split screen with CSS flexbox" />
<meta name="keywords" content="css flexbox, css layout, css split screen" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -13,6 +14,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Stepper input">
<Helmet>
<meta name="description" content="Create a stepper input with CSS flexbox" />
<meta name="keywords" content="css flexbox, css stepper input" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Sticky footer">
<Helmet>
<meta name="description" content="Create a sticky footer with CSS flexbox" />
<meta name="keywords" content="css flexbox, css layout, css sticky, css sticky footer" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
The footer always sticks to the bottom if the main content is short.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -8,6 +9,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Sticky header">
<Helmet>
<meta name="description" content="Create a sticky header with CSS" />
<meta name="keywords" content="css layout, css sticky, css sticky header" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
Try to scroll the main content to see the header sticks to the top of page.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -6,6 +7,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Sticky sections">
<Helmet>
<meta name="description" content="Create sticky sections with CSS" />
<meta name="keywords" content="css layout, css sticky, css sticky sections" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
Try to scroll the main content to see each section sticks to the top of page.

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -11,6 +12,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Switch">
<Helmet>
<meta name="description" content="Create a switch with CSS flexbox" />
<meta name="keywords" content="css custom checkbox, css flexbox, css switch, css switcher" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px'}}>
The checkbox is placed inside a label. So when clicking on the label,

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -33,6 +34,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Tab">
<Helmet>
<meta name="description" content="Create tabs with CSS flexbox" />
<meta name="keywords" content="css flexbox, css navigation, css tab" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -9,6 +10,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Timeline">
<Helmet>
<meta name="description" content="Create a timeline with CSS flexbox" />
<meta name="keywords" content="css flexbox, css timeline" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React, { useState } from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -9,6 +10,10 @@ const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Toggle password visibility">
<Helmet>
<meta name="description" content="Create a toggle password visibility with CSS flexbox" />
<meta name="keywords" content="css flexbox, toggle password visibility" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import './tooltip.css';
@@ -12,6 +13,10 @@ import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Tooltip">
<Helmet>
<meta name="description" content="Create a tooltip with CSS" />
<meta name="keywords" content="css tooltip" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
Move the mouser over the main element to see the tooltip.

View File

@@ -1,13 +1,17 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
import Circle from '../../placeholders/Circle';
import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Upload button">
<Helmet>
<meta name="description" content="Create an upload button with CSS flexbox" />
<meta name="keywords" content="css file input, css flexbox, css upload button" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
You can click the button to choose a file.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
@@ -6,6 +7,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Validation icon">
<Helmet>
<meta name="description" content="Add validation icons to input with CSS" />
<meta name="keywords" content="css validation icon" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import RelatedPatterns from '../../components/RelatedPatterns';
import Pattern from '../../constants/Pattern';
@@ -9,6 +10,10 @@ import BrowserFrame from '../../placeholders/BrowserFrame';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Video background">
<Helmet>
<meta name="description" content="Add video background with CSS flexbox" />
<meta name="keywords" content="css flexbox, object fit cover" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<div style={{ lineHeight: 1.5, marginBottom: '16px' }}>
In this pattern, the video is displayed in the background.

View File

@@ -1,4 +1,5 @@
import React from 'react';
import { Helmet } from 'react-helmet';
import DetailsLayout from '../../layouts/DetailsLayout';
import Block from '../../placeholders/Block';
@@ -9,6 +10,10 @@ import Line from '../../placeholders/Line';
const Details: React.FC<{}> = () => {
return (
<DetailsLayout title="Wizard">
<Helmet>
<meta name="description" content="Create a wizard with CSS flexbox" />
<meta name="keywords" content="css flexbox, css stepper, css wizard" />
</Helmet>
<div style={{ padding: '64px 32px' }}>
<BrowserFrame
content={(

38
package-lock.json generated
View File

@@ -962,6 +962,15 @@
"@types/react": "*"
}
},
"@types/react-helmet": {
"version": "5.0.14",
"resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-5.0.14.tgz",
"integrity": "sha512-Q73FFg7+LjblfSQUNbnjrwy2T1avBP8yevEgNrkDjyz1rBbnXkuOQcEV7I5wvmAic9FLUk0CnkLieEDej84Zkw==",
"dev": true,
"requires": {
"@types/react": "*"
}
},
"@types/react-router": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.3.tgz",
@@ -6864,6 +6873,22 @@
"scheduler": "^0.18.0"
}
},
"react-fast-compare": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz",
"integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="
},
"react-helmet": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.1.tgz",
"integrity": "sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA==",
"requires": {
"object-assign": "^4.1.1",
"prop-types": "^15.5.4",
"react-fast-compare": "^2.0.2",
"react-side-effect": "^1.1.0"
}
},
"react-is": {
"version": "16.12.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
@@ -6900,6 +6925,14 @@
"tiny-warning": "^1.0.0"
}
},
"react-side-effect": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.2.0.tgz",
"integrity": "sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w==",
"requires": {
"shallowequal": "^1.0.1"
}
},
"react-snap": {
"version": "1.23.0",
"resolved": "https://registry.npmjs.org/react-snap/-/react-snap-1.23.0.tgz",
@@ -7513,6 +7546,11 @@
"safe-buffer": "^5.0.1"
}
},
"shallowequal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
},
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",

View File

@@ -15,6 +15,7 @@
"highlight.js": "^9.16.2",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"react-router-dom": "^5.1.2"
},
"devDependencies": {
@@ -25,6 +26,7 @@
"@types/loadable__component": "^5.10.0",
"@types/react": "^16.9.16",
"@types/react-dom": "^16.9.4",
"@types/react-helmet": "^5.0.14",
"@types/react-router-dom": "^5.1.3",
"babel-loader": "^8.0.6",
"cpx2": "^2.0.0",