diff --git a/contents/_includes/patterns/folder-structure.njk b/contents/_includes/patterns/folder-structure.njk
new file mode 100644
index 0000000..9f5d207
--- /dev/null
+++ b/contents/_includes/patterns/folder-structure.njk
@@ -0,0 +1,28 @@
+
+
+ -
+ {% square %}
+
+
+ -
+ {% square %}
+
+ -
+ {% square %}
+
+
+ -
+ {% square %}
+
+
+
+
+
\ No newline at end of file
diff --git a/contents/folder-structure.md b/contents/folder-structure.md
new file mode 100644
index 0000000..3ccdd4c
--- /dev/null
+++ b/contents/folder-structure.md
@@ -0,0 +1,99 @@
+---
+layout: layouts/post.njk
+title: Folder structure
+description: Create a folder structure with CSS
+keywords: css folder structure, css folder tree
+---
+
+## HTML
+
+```html
+
+
+ -
+
+ ...
+
+
+
+ -
+
+ ...
+
+
+
+
+ - ...
+ ...
+
+
+
+
+ ...
+
+
+```
+
+## CSS
+
+```css
+:root {
+ --folder-structure-item-height: 0.5rem;
+ --folder-structure-item-margin-left: 2.25rem;
+ --folder-structure-item-padding-top: 0.5rem;
+}
+
+.folder-structure ul {
+ /* Reset */
+ list-style-type: none;
+ margin: 0;
+}
+
+.folder-structure li {
+ padding: var(--folder-structure-item-padding-top) 0rem 0rem 0rem;
+ position: relative;
+}
+
+.folder-structure li::before {
+ border-left: 1px solid #d1d5db;
+ content: '';
+
+ /* Position */
+ left: 0;
+ position: absolute;
+ top: 0;
+ transform: translate(calc(-1 * var(--folder-structure-item-margin-left)), 0);
+
+ /* Size */
+ height: 100%;
+}
+
+.folder-structure li::after {
+ border-bottom: 1px solid #d1d5db;
+ content: '';
+
+ /* Position */
+ left: 0;
+ position: absolute;
+ top: calc(var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2);
+ transform: translate(-100%, 0);
+
+ /* Size */
+ width: var(--folder-structure-item-margin-left);
+}
+
+/* Remove the border from the last item */
+.folder-structure li:last-child::before {
+ height: calc(
+ var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2
+ );
+}
+```
+
+{% demo %}
+{% include "patterns/folder-structure.njk" %}
+{% enddemo %}
diff --git a/contents/index.njk b/contents/index.njk
index cf2bf3e..d58838c 100644
--- a/contents/index.njk
+++ b/contents/index.njk
@@ -151,6 +151,12 @@ eleventyExcludeFromCollections: true
Fixed at side
+
-`}
- css={`
- :root {
- --folder-structure-item-height: 1rem;
- --folder-structure-item-margin-left: 2rem;
- --folder-structure-item-padding-top: 1rem;
- }
-
- .folder-structure ul {
- /* Reset */
- list-style-type: none;
- margin: 0;
- }
-
- .folder-structure li {
- padding: var(--folder-structure-item-padding-top) 0rem 0rem 0rem;
- position: relative;
- }
-
- .folder-structure li::before {
- border-left: 1px solid rgba(0, 0, 0, 0.3);
- content: '';
-
- /* Position */
- left: 0;
- position: absolute;
- top: 0;
- transform: translate(calc(-1 * var(--folder-structure-item-margin-left)), 0);
-
- /* Size */
- height: 100%;
- }
-
- .folder-structure li::after {
- border-bottom: 1px solid rgba(0, 0, 0, 0.3);
- content: '';
-
- /* Position */
- left: 0;
- position: absolute;
- top: calc(var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2);
- transform: translate(-100%, 0);
-
- /* Size */
- width: var(--folder-structure-item-margin-left);
- }
-
- /* Remove the border from the last item */
- .folder-structure li:last-child::before {
- height: calc(
- var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2
- );
- }
- `}
- >
-
-
-
-
-
-
- );
-};
-
-export default Details;
diff --git a/patterns/folder-structure/Cover.tsx b/patterns/folder-structure/Cover.tsx
deleted file mode 100644
index 9514022..0000000
--- a/patterns/folder-structure/Cover.tsx
+++ /dev/null
@@ -1,125 +0,0 @@
-import * as React from 'react';
-
-import Frame from '../../placeholders/Frame';
-import Square from '../../placeholders/Square';
-
-const Cover: React.FC<{}> = () => {
- return (
-
-
-
- );
-};
-
-export default Cover;
diff --git a/styles/blocks/_post.scss b/styles/blocks/_post.scss
index 78b465f..c86152f 100644
--- a/styles/blocks/_post.scss
+++ b/styles/blocks/_post.scss
@@ -61,19 +61,19 @@
max-width: 100%;
}
- ol {
+ > ol {
counter-reset: ol-step-counter;
list-style-type: none;
margin: 0;
padding: 0;
}
- ol li {
+ > ol li {
counter-increment: ol-step-counter;
padding-bottom: 0.25rem;
padding-left: 2rem;
}
- ol li::before {
+ > ol li::before {
background-color: #e5e7eb;
border-radius: 50%;
content: counter(ol-step-counter);
@@ -113,7 +113,7 @@
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
- ul {
+ > ul {
margin: 0;
padding: 0 0 0 1.5rem;
}
diff --git a/styles/index.scss b/styles/index.scss
index 5508f8d..e011b49 100644
--- a/styles/index.scss
+++ b/styles/index.scss
@@ -34,6 +34,7 @@
@import './patterns/feature-list';
@import './patterns/fixed-at-corner';
@import './patterns/fixed-at-side';
+@import './patterns/folder-structure';
@import './patterns/full-background';
@import './patterns/initial-avatar';
@import './patterns/inverted-corners';
diff --git a/styles/patterns/_folder-structure.scss b/styles/patterns/_folder-structure.scss
new file mode 100644
index 0000000..2590240
--- /dev/null
+++ b/styles/patterns/_folder-structure.scss
@@ -0,0 +1,51 @@
+:root {
+ --folder-structure-item-height: 0.5rem;
+ --folder-structure-item-margin-left: 2.25rem;
+ --folder-structure-item-padding-top: 0.5rem;
+}
+
+.folder-structure ul {
+ /* Reset */
+ list-style-type: none;
+ margin: 0;
+}
+
+.folder-structure li {
+ padding: var(--folder-structure-item-padding-top) 0rem 0rem 0rem;
+ position: relative;
+}
+
+.folder-structure li::before {
+ border-left: 1px solid #d1d5db;
+ content: '';
+
+ /* Position */
+ left: 0;
+ position: absolute;
+ top: 0;
+ transform: translate(calc(-1 * var(--folder-structure-item-margin-left)), 0);
+
+ /* Size */
+ height: 100%;
+}
+
+.folder-structure li::after {
+ border-bottom: 1px solid #d1d5db;
+ content: '';
+
+ /* Position */
+ left: 0;
+ position: absolute;
+ top: calc(var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2);
+ transform: translate(-100%, 0);
+
+ /* Size */
+ width: var(--folder-structure-item-margin-left);
+}
+
+/* Remove the border from the last item */
+.folder-structure li:last-child::before {
+ height: calc(
+ var(--folder-structure-item-padding-top) + var(--folder-structure-item-height) / 2
+ );
+}
\ No newline at end of file