Skip to content

Commit 0b96766

Browse files
authored
Lavish rhythm modifier (#1850)
1 parent 4dbb59f commit 0b96766

File tree

6 files changed

+71
-5
lines changed

6 files changed

+71
-5
lines changed

.changeset/large-hornets-fly.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@cloudfour/patterns': minor
3+
---
4+
5+
Add the "lavish" Rhythm object modifier for separating entire sections with the same fluid whitespace as padded containers

src/mixins/_spacing.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,7 @@ $fluid-spacing-inline-negative: fluid.fluid-clamp(
7575
}
7676
}
7777
}
78+
79+
@mixin fluid-vertical-rhythm() {
80+
--rhythm: #{$fluid-spacing-block};
81+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{% embed '@cloudfour/objects/rhythm/rhythm.twig' with {
2+
class: 'o-rhythm--generous'
3+
} only %}
4+
{% block content %}
5+
{% for i in 1..3 %}
6+
{% embed '@cloudfour/objects/container/container.twig' with {
7+
class: 'o-container--prose'
8+
} only %}
9+
{% block content %}
10+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum quam tellus, auctor non faucibus consequat, dictum et dui. Praesent vitae magna sit amet odio egestas semper. Duis nec tellus ligula. Pellentesque mollis varius pulvinar. Suspendisse eu ultrices quam. In dignissim felis efficitur lorem porttitor porttitor. Aliquam maximus tempus erat ut sagittis.</p>
11+
{% endblock %}
12+
{% endembed %}
13+
{% endfor %}
14+
{% endblock %}
15+
{% endembed %}
Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,36 @@
1-
{% embed '@cloudfour/objects/rhythm/rhythm.twig' with {
2-
class: 'o-rhythm--generous'
1+
{% embed '@cloudfour/objects/container/container.twig' with {
2+
class: 'o-container--pad'
3+
} only %}
4+
{% block content %}
5+
{% embed '@cloudfour/objects/rhythm/rhythm.twig' with {
6+
class: 'o-rhythm--lavish'
7+
} only %}
8+
{% block content %}
9+
{% for i in 1..3 %}
10+
<div>
11+
<h3>Section {{i}}</h3>
12+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum quam tellus, auctor non faucibus consequat, dictum et dui. Praesent vitae magna sit amet odio egestas semper. Duis nec tellus ligula. Pellentesque mollis varius pulvinar. Suspendisse eu ultrices quam. In dignissim felis efficitur lorem porttitor porttitor. Aliquam maximus tempus erat ut sagittis.</p>
13+
</div>
14+
{% endfor %}
15+
{% endblock %}
16+
{% endembed %}
17+
{% endblock %}
18+
{% endembed %}
19+
20+
{# {% embed '@cloudfour/objects/rhythm/rhythm.twig' with {
21+
class: 'o-rhythm--lavish'
322
} only %}
423
{% block content %}
524
{% for i in 1..3 %}
625
{% embed '@cloudfour/objects/container/container.twig' with {
7-
class: 'o-container--prose'
26+
class: 'o-container--prose',
27+
i: i
828
} only %}
929
{% block content %}
30+
<h3>Section {{i}}</h3>
1031
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum quam tellus, auctor non faucibus consequat, dictum et dui. Praesent vitae magna sit amet odio egestas semper. Duis nec tellus ligula. Pellentesque mollis varius pulvinar. Suspendisse eu ultrices quam. In dignissim felis efficitur lorem porttitor porttitor. Aliquam maximus tempus erat ut sagittis.</p>
1132
{% endblock %}
1233
{% endembed %}
1334
{% endfor %}
1435
{% endblock %}
15-
{% endembed %}
36+
{% endembed %} #}

src/objects/rhythm/rhythm.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
--rhythm: #{size.$rhythm-generous};
2525
}
2626

27+
.o-rhythm--lavish {
28+
@include spacing.fluid-vertical-rhythm;
29+
}
30+
2731
.o-rhythm--default {
2832
--rhythm: #{size.$rhythm-default};
2933
}

src/objects/rhythm/rhythm.stories.mdx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import listDemo from './demo/list.twig';
1717
import introDemoSource from '!!raw-loader!./demo/intro.twig';
1818
import introDemo from './demo/intro.twig';
1919
// eslint-disable-next-line @cloudfour/import/no-webpack-loader-syntax
20+
import paragraphsDemoSource from '!!raw-loader!./demo/paragraphs.twig';
21+
import paragraphsDemo from './demo/paragraphs.twig';
22+
// eslint-disable-next-line @cloudfour/import/no-webpack-loader-syntax
2023
import sectionsDemoSource from '!!raw-loader!./demo/sections.twig';
2124
import sectionsDemo from './demo/sections.twig';
2225
// eslint-disable-next-line @cloudfour/import/no-webpack-loader-syntax
@@ -69,7 +72,21 @@ While `o-rhythm--generous` is intended for separating distinct content chunks wi
6972
<Canvas>
7073
<Story
7174
name="Generous"
72-
parameters={{ docs: { source: { code: sectionsDemoSource } } }}
75+
parameters={{ docs: { source: { code: paragraphsDemoSource } } }}
76+
>
77+
{paragraphsDemo}
78+
</Story>
79+
</Canvas>
80+
81+
And finally, `o-rhythm--lavish` can separate entire sections from each other. It uses the same fluid padding values as [the container object](/?path=/docs/objects-container--basic):
82+
83+
<Canvas>
84+
<Story
85+
name="Lavish"
86+
parameters={{
87+
layout: 'fullscreen',
88+
docs: { source: { code: sectionsDemoSource } },
89+
}}
7390
>
7491
{sectionsDemo}
7592
</Story>

0 commit comments

Comments
 (0)