diff --git a/components/CssScanBanner.tsx b/components/CssScanBanner.tsx
new file mode 100644
index 0000000..c3b99b9
--- /dev/null
+++ b/components/CssScanBanner.tsx
@@ -0,0 +1,16 @@
+import * as React from 'react';
+
+export const CssScanBanner = () => (
+
+
+
Have you seen CSS Scan?
+
The fastest and easiest way to check, copy and edit CSS.
+
Learn more →
+

+
+
+);
diff --git a/components/Follow.tsx b/components/Follow.tsx
index ab07eec..433f7dc 100644
--- a/components/Follow.tsx
+++ b/components/Follow.tsx
@@ -1,7 +1,8 @@
import * as React from 'react';
export const Follow = () => (
-
- If you find this site helpful, follow me on
Twitter and
GitHub to get more useful content like this.
+
+ If you find this site helpful, follow me on
Twitter and{' '}
+
GitHub to get more useful content like this.
);
diff --git a/layouts/PatternLayout.tsx b/layouts/PatternLayout.tsx
index 8bf4c64..6ae5cc1 100644
--- a/layouts/PatternLayout.tsx
+++ b/layouts/PatternLayout.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import Head from 'next/head';
import { Heading, Spacer } from '@1milligram/design';
-import { Ad } from '../components/Ad';
+import { CssScanBanner } from '../components/CssScanBanner';
import { Follow } from '../components/Follow';
import { Pattern } from '../constants/Pattern';
import { slug } from '../utils/slug';
@@ -30,12 +30,10 @@ export const PatternLayout: React.FC<{
{children}
diff --git a/pages/index.tsx b/pages/index.tsx
index 838d6f5..7f82d39 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -2,6 +2,7 @@ import * as React from 'react';
import { Heading, Spacer } from '@1milligram/design';
import { CoverCard } from '../components/CoverCard';
+import { CssScanBanner } from '../components/CssScanBanner';
import { Pattern } from '../constants/Pattern';
import { Layout } from '../layouts/Layout';
@@ -14,6 +15,8 @@ const HomePage = () => {
CSS Layout
Popular layouts and patterns made with CSS
+
+
Following covers are made with CSS only. Inspect them!
diff --git a/styles/blocks/_css-scan.scss b/styles/blocks/_css-scan.scss
new file mode 100644
index 0000000..403158d
--- /dev/null
+++ b/styles/blocks/_css-scan.scss
@@ -0,0 +1,87 @@
+.block-cssscan {
+ font-family: -apple-system, system-ui, Roboto, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ color: #000;
+ text-decoration: none;
+ display: block;
+}
+
+.block-cssscan__inner {
+ max-width: 1024px;
+ background: #c2fbd7;
+ border-radius: 1rem;
+ padding: 2.5rem;
+ position: relative;
+ overflow: hidden;
+ box-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px 0;
+ cursor: pointer;
+ text-align: left;
+}
+
+.block-cssscan__title {
+ font-size: 28px;
+ font-weight: bold;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+
+.block-cssscan__desc {
+ opacity: 0.8;
+ color: #333;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.block-cssscan__more {
+ margin: 0;
+ margin-top: 2em;
+}
+
+.block-cssscan__image {
+ position: absolute;
+ transform: rotate(-7deg);
+ transition: all 0.3s;
+ top: 14%;
+ right: -37%;
+ width: 95%;
+ height: 95%;
+}
+
+.block-cssscan__inner:hover {
+ .block-cssscan__more {
+ text-decoration: underline;
+ }
+
+ .block-cssscan__image {
+ transform: scale(1.1) rotate(-7deg);
+ top: 10%;
+ right: -35%;
+ }
+}
+
+@media screen and (min-width: 0px) and (max-width: 1010px) {
+ .block-cssscan {
+ padding: 0;
+ }
+
+ .block-cssscan__inner {
+ margin-top: 2em;
+ min-height: 300px;
+ border-radius: 0;
+ }
+
+ .block-cssscan__image {
+ top: initial;
+ bottom: -14%;
+ width: 45%;
+ height: 45%;
+ right: -5%;
+ }
+
+ .block-cssscan__inner:hover .block-cssscan__image {
+ top: initial;
+ bottom: -10%;
+ right: -5%;
+ transform: scale(1.1) rotate(-7deg);
+ }
+}
diff --git a/styles/blocks/_follow.scss b/styles/blocks/_follow.scss
index 6a663b3..585fe21 100644
--- a/styles/blocks/_follow.scss
+++ b/styles/blocks/_follow.scss
@@ -8,4 +8,4 @@
color: #fff;
text-decoration: underline;
}
-}
\ No newline at end of file
+}
diff --git a/styles/index.scss b/styles/index.scss
index 6d2ac81..752d1cd 100644
--- a/styles/index.scss
+++ b/styles/index.scss
@@ -5,6 +5,7 @@
@import 'blocks/browser-frame';
@import 'blocks/code';
@import 'blocks/cover';
+@import 'blocks/css-scan';
@import 'blocks/follow';
@import 'blocks/footer';
@import 'blocks/header';
diff --git a/tsconfig.json b/tsconfig.json
index 7d4a0c2..b9fc7d4 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,34 +1,23 @@
{
- "compilerOptions": {
- "outDir": "./dist/",
- "esModuleInterop": true,
- "sourceMap": true,
- "noImplicitAny": true,
- "module": "esnext",
- "moduleResolution": "node",
- "target": "esnext",
- "jsx": "preserve",
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
- "allowJs": true,
- "skipLibCheck": true,
- "strict": false,
- "forceConsistentCasingInFileNames": true,
- "noEmit": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "incremental": true
- },
- "include": [
- "next-env.d.ts",
- "**/*.ts",
- "**/*.tsx"
- ],
- "exclude": [
- "bin",
- "node_modules"
- ]
+ "compilerOptions": {
+ "outDir": "./dist/",
+ "esModuleInterop": true,
+ "sourceMap": true,
+ "noImplicitAny": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "target": "esnext",
+ "jsx": "preserve",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "incremental": true
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["bin", "node_modules"]
}