Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
+ +{{> @figure class="o-offset-content--right" caption="This figure is offset to the right.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ +Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
+ +{{> @figure class="o-offset-content--left" caption="This figure is offset to the left.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet.
+ +At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident.
diff --git a/src/lib/_imports/objects/o-offset-content/readme.md b/src/lib/_imports/objects/o-offset-content/readme.md new file mode 100644 index 000000000..b0049a156 --- /dev/null +++ b/src/lib/_imports/objects/o-offset-content/readme.md @@ -0,0 +1,10 @@ +Content that should be: +1. offset from the flow of text within which it is placed +2. not offset at narrow viewports + +| Class | Description +| - | - | +| `.offset-content--left` | offset content to the left | +| `.offset-content--right` | offset content to the right | + + diff --git a/src/lib/_imports/tools/x-offset-content.css b/src/lib/_imports/tools/x-offset-content.css new file mode 100644 index 000000000..00ccd7312 --- /dev/null +++ b/src/lib/_imports/tools/x-offset-content.css @@ -0,0 +1,37 @@ +/* Base */ + +@define-mixin offset-content { + --offset-distance: 12vw; + --buffer: calc( 2 * var(--global-space--grid-gap) ); + + max-width: 85%; +} + + +/* Modifiers */ + +@define-mixin offset-content--float-left { + float: left; + margin-right: var(--buffer); +} + +@define-mixin offset-content--float-right { + float: right; + margin-left: var(--buffer); +} + +@define-mixin offset-content--offset-left { + margin-left: calc( var(--offset-distance) * -1); +} + +@define-mixin offset-content--offset-right { + margin-right: calc( var(--offset-distance) * -1); +} + +@define-mixin offset-content--terminate-offset-left { + clear: left; +} + +@define-mixin offset-content--terminate-offset-right { + clear: right; +} diff --git a/src/lib/_imports/tools/x-offset-content.demo.css b/src/lib/_imports/tools/x-offset-content.demo.css new file mode 100644 index 000000000..a75988d81 --- /dev/null +++ b/src/lib/_imports/tools/x-offset-content.demo.css @@ -0,0 +1,24 @@ +/* This CSS is ONLY for the pattern library. It is NOT part of the pattern. */ + +@import url("./x-offset-content.css"); + +.x-offset-content--left, +.x-offset-content--right { + @mixin offset-content; +} + +.x-offset-content--right { + @mixin offset-content--float-right; + @mixin offset-content--offset-right; + & + & { + @mixin offset-content--terminate-offset-right; + } +} + +.x-offset-content--left { + @mixin offset-content--float-left; + @mixin offset-content--offset-left; + & + & { + @mixin offset-content--terminate-offset-left; + } +} diff --git a/src/lib/_imports/tools/x-offset-content/config.yml b/src/lib/_imports/tools/x-offset-content/config.yml new file mode 100644 index 000000000..959103643 --- /dev/null +++ b/src/lib/_imports/tools/x-offset-content/config.yml @@ -0,0 +1,5 @@ +status: ready +context: + shouldSkipPattern: false + supportStyles: + - ../../assets/tools/x-offset-content.demo.css diff --git a/src/lib/_imports/tools/x-offset-content/readme.md b/src/lib/_imports/tools/x-offset-content/readme.md new file mode 100644 index 000000000..feb0e724c --- /dev/null +++ b/src/lib/_imports/tools/x-offset-content/readme.md @@ -0,0 +1,14 @@ +Mixins for content that can be offset from the flow of text within which it is placed. + +| Mixin | Description +| - | - +| `offset-content` | base styles | +| `offset-content--float-left` | float content to the left | +| `offset-content--float-right` | float content to the right | +| `offset-content--offset-left` | offset content to the left | +| `offset-content--offset-right` | offset content to the right | +| `offset-content--terminate-offset-left` | terminate offset sequence for left-floated content (prevents consecutive elements from stacking) | +| `offset-content--terminate-offset-right` | terminate offset sequence for right-floated content (prevents consecutive elements from stacking) | +| `offset-content__figure-caption` | style for figure captions within offset content | + + diff --git a/src/lib/_imports/tools/x-offset-content/x-offset-content.hbs b/src/lib/_imports/tools/x-offset-content/x-offset-content.hbs new file mode 100644 index 000000000..59df65101 --- /dev/null +++ b/src/lib/_imports/tools/x-offset-content/x-offset-content.hbs @@ -0,0 +1,14 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
+ +{{> @figure class="x-offset-content--right" caption="This figure is offset to the right." }} + +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ +Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
+ +{{> @figure class="x-offset-content--left" caption="This figure is offset to the left." }} + +Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet.
+ +At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident.
+