From 6f4170af8ea073b3538b3948b55dc8b7796e71b8 Mon Sep 17 00:00:00 2001 From: reverend Date: Wed, 3 Mar 2021 00:49:21 +0100 Subject: [PATCH] Honsely, I don't know what happened here --- components/00_ContentShape/_contentShape.styl | 4 + .../aspectRatio/_aspectRatio.styl | 61 + .../aspectRatio/aspectRatio.config.json | 45 + .../aspectRatio/aspectRatio.hbs | 12 + .../focalPoint/_focalPoint.styl | 48 + .../focalPoint/focalPoint.config.json | 4 + .../00_ContentShape/focalPoint/focalPoint.hbs | 22 + components/00_ContentShape/shape/_shape.styl | 34 + .../00_ContentShape/shape/shape.config.json | 17 + components/00_ContentShape/shape/shape.hbs | 3 + .../truncation/_truncation.styl | 62 + .../truncation/truncation.config.json | 17 + .../00_ContentShape/truncation/truncation.hbs | 5 + components/00_Tools/_bemGenerator.styl | 8 +- components/00_Tools/_cssParameter.styl | 2 +- components/00_Tools/_elementAmount.styl | 14 +- components/01_Layouts/_layouts.styl | 4 +- .../01_Layouts/contentCrop/_contentCrop.styl | 11 +- components/01_Layouts/dummy/_dummy.styl | 47 +- components/01_Layouts/fan/_fan.styl | 28 +- components/01_Layouts/fan/fan.hbs | 15 +- components/01_Layouts/flexGrid/_flexGrid.styl | 16 +- components/01_Layouts/flexGrid/flexGrid.hbs | 30 + components/01_Layouts/flexRow/_flexRow.styl | 6 +- .../01_Layouts/flexRow/flexRow.config.json | 33 +- components/01_Layouts/flexRow/flexRow.hbs | 53 +- components/02_Styles/_styles.styl | 2 +- .../02_Styles/boxShadow/_boxShadow.styl | 12 +- .../02_Styles/elementList/_elementList.styl | 15 + .../elementList/elementList.config.json | 0 .../elementList/elementList.hbs | 0 components/02_Styles/spacing/_spacing.styl | 30 +- components/03_Atoms/_atoms.styl | 1 + components/03_Atoms/button/_button.styl | 191 +++ components/03_Atoms/button/button.config.json | 1 + components/03_Atoms/button/button.hbs | 39 + components/04_Molecules/_molecules.styl | 5 +- .../elementList/_elementList.styl | 15 - .../overlayButton/pagination/_pagination.styl | 15 + .../pagination/pagination.config.json | 3 + .../overlayButton/pagination/pagination.hbs | 77 ++ components/04_Molecules/teaser/_teaser.styl | 47 + .../04_Molecules/teaser/teaser.config.json | 1 + components/04_Molecules/teaser/teaser.hbs | 46 + components/_components.styl | 7 +- components/_preview.hbs | 4 +- components/colors.styl | 9 + components/rcss.styl | 1 + public/icons/cancel.svg | 44 + public/icons/debug.png | Bin 0 -> 16013 bytes public/icons/error.png | Bin 0 -> 2239 bytes public/icons/favourite.svg | 1 + public/icons/flag.svg | 1 + public/icons/hamburger_menu.svg | 1 + public/icons/information.svg | 1 + public/icons/location.svg | 1 + public/icons/message.svg | 1 + public/icons/plus.svg | 8 + public/icons/social/facebook.svg | 52 + public/icons/social/instagram.svg | 52 + public/icons/social/mastodon.svg | 62 + public/icons/social/twitter.svg | 52 + public/icons/social/vimeo.svg | 52 + public/icons/social/vkontakte.svg | 52 + public/icons/social/wordpress.svg | 52 + public/icons/social/youtube.svg | 52 + public/icons/success.svg | 3 + public/images/portrait_lowFocelPoint.jpeg | Bin 0 -> 78636 bytes public/rcss.css | 1161 +++++++++++++---- revelogo.svg | 17 + 70 files changed, 2415 insertions(+), 372 deletions(-) create mode 100644 components/00_ContentShape/_contentShape.styl create mode 100644 components/00_ContentShape/aspectRatio/_aspectRatio.styl create mode 100644 components/00_ContentShape/aspectRatio/aspectRatio.config.json create mode 100644 components/00_ContentShape/aspectRatio/aspectRatio.hbs create mode 100644 components/00_ContentShape/focalPoint/_focalPoint.styl create mode 100644 components/00_ContentShape/focalPoint/focalPoint.config.json create mode 100644 components/00_ContentShape/focalPoint/focalPoint.hbs create mode 100644 components/00_ContentShape/shape/_shape.styl create mode 100644 components/00_ContentShape/shape/shape.config.json create mode 100644 components/00_ContentShape/shape/shape.hbs create mode 100644 components/00_ContentShape/truncation/_truncation.styl create mode 100644 components/00_ContentShape/truncation/truncation.config.json create mode 100644 components/00_ContentShape/truncation/truncation.hbs create mode 100644 components/02_Styles/elementList/_elementList.styl rename components/{04_Molecules => 02_Styles}/elementList/elementList.config.json (100%) rename components/{04_Molecules => 02_Styles}/elementList/elementList.hbs (100%) create mode 100644 components/03_Atoms/button/_button.styl create mode 100644 components/03_Atoms/button/button.config.json create mode 100644 components/03_Atoms/button/button.hbs delete mode 100644 components/04_Molecules/elementList/_elementList.styl create mode 100644 components/04_Molecules/overlayButton/pagination/_pagination.styl create mode 100644 components/04_Molecules/overlayButton/pagination/pagination.config.json create mode 100644 components/04_Molecules/overlayButton/pagination/pagination.hbs create mode 100644 components/04_Molecules/teaser/_teaser.styl create mode 100644 components/04_Molecules/teaser/teaser.config.json create mode 100644 components/04_Molecules/teaser/teaser.hbs create mode 100644 components/colors.styl create mode 100644 public/icons/cancel.svg create mode 100644 public/icons/debug.png create mode 100644 public/icons/error.png create mode 100644 public/icons/favourite.svg create mode 100644 public/icons/flag.svg create mode 100644 public/icons/hamburger_menu.svg create mode 100644 public/icons/information.svg create mode 100644 public/icons/location.svg create mode 100644 public/icons/message.svg create mode 100644 public/icons/plus.svg create mode 100644 public/icons/social/facebook.svg create mode 100644 public/icons/social/instagram.svg create mode 100644 public/icons/social/mastodon.svg create mode 100644 public/icons/social/twitter.svg create mode 100644 public/icons/social/vimeo.svg create mode 100644 public/icons/social/vkontakte.svg create mode 100644 public/icons/social/wordpress.svg create mode 100644 public/icons/social/youtube.svg create mode 100644 public/icons/success.svg create mode 100644 public/images/portrait_lowFocelPoint.jpeg create mode 100644 revelogo.svg diff --git a/components/00_ContentShape/_contentShape.styl b/components/00_ContentShape/_contentShape.styl new file mode 100644 index 0000000..912234f --- /dev/null +++ b/components/00_ContentShape/_contentShape.styl @@ -0,0 +1,4 @@ +@import 'aspectRatio/_aspectRatio' +@import 'focalPoint/_focalPoint' +@import 'shape/_shape' +@import 'truncation/_truncation' \ No newline at end of file diff --git a/components/00_ContentShape/aspectRatio/_aspectRatio.styl b/components/00_ContentShape/aspectRatio/_aspectRatio.styl new file mode 100644 index 0000000..0874fbb --- /dev/null +++ b/components/00_ContentShape/aspectRatio/_aspectRatio.styl @@ -0,0 +1,61 @@ +RV-AspectRatio--XtoY(aspectX=1, aspectY=1) + RV-CSSParameter({ + aspectX: aspectX, + aspectY: aspectY + }) + + padding-top 'calc(100% * calc(%s / %s))' % (--aspectY --aspectX) + &:last-child + margin-bottom 'calc(-1 * 100% * calc(%s / %s) + var(--outer-spacing))' % (--aspectY --aspectX) + + RV-Utils__ElementAmount(1, @(index, totale){ + margin-bottom 0px + }) + +RV-AspectRatio() + position relative + overflow hidden + height unset + width unset + + * + object-fit cover + position absolute + top 0 + left 0 + bottom 0 + right 0 + +RV-AspectRatio--1to2() + RV-AspectRatio--XtoY(1, 2) + +RV-AspectRatio--2to1() + RV-AspectRatio--XtoY(2, 1) + +RV-AspectRatio--3to2() + RV-AspectRatio--XtoY(3, 2) + +RV-AspectRatio--4to3() + RV-AspectRatio--XtoY(4, 3) + +RV-AspectRatio--16to9() + RV-AspectRatio--XtoY(16, 9) + + +.RV-AspectRatio + RV-AspectRatio() + + &--1to2 + RV-AspectRatio--1to2() + + &--2to1 + RV-AspectRatio--2to1() + + &--3to2 + RV-AspectRatio--3to2() + + &--4to3 + RV-AspectRatio--4to3() + + &--16to9 + RV-AspectRatio--16to9() \ No newline at end of file diff --git a/components/00_ContentShape/aspectRatio/aspectRatio.config.json b/components/00_ContentShape/aspectRatio/aspectRatio.config.json new file mode 100644 index 0000000..fb9e03f --- /dev/null +++ b/components/00_ContentShape/aspectRatio/aspectRatio.config.json @@ -0,0 +1,45 @@ +{ + "name": "aspectRatio", + "title": "Aspect Ratio", + "context": { + "modifier_list": [ + "RV-AspectRatio--1to2 RV-Dummy--orange", + "RV-AspectRatio--2to1 RV-Dummy--blue", + "RV-AspectRatio--3to2 RV-Dummy--green", + "RV-AspectRatio--4to3 RV-Dummy--red", + "RV-AspectRatio--16to9 RV-Dummy--yellow" + ] + }, + "variants": [ + { + "name": "1 to 2", + "context": { + "modifier": "RV-AspectRatio--1to2" + } + }, + { + "name": "2 to 1", + "context": { + "modifier": "RV-AspectRatio--2to1" + } + }, + { + "name": "3 to 2", + "context": { + "modifier": "RV-AspectRatio--3to2" + } + }, + { + "name": "4 to 3", + "context": { + "modifier": "RV-AspectRatio--4to3" + } + }, + { + "name": "16 to 9", + "context": { + "modifier": "RV-AspectRatio--16to9" + } + } + ] +} \ No newline at end of file diff --git a/components/00_ContentShape/aspectRatio/aspectRatio.hbs b/components/00_ContentShape/aspectRatio/aspectRatio.hbs new file mode 100644 index 0000000..a01d61c --- /dev/null +++ b/components/00_ContentShape/aspectRatio/aspectRatio.hbs @@ -0,0 +1,12 @@ + +{{#if modifier}} +
+{{else}} +
+ {{#each modifier_list}} +
+
+
+ {{/each}} +
+{{/if}} \ No newline at end of file diff --git a/components/00_ContentShape/focalPoint/_focalPoint.styl b/components/00_ContentShape/focalPoint/_focalPoint.styl new file mode 100644 index 0000000..0441918 --- /dev/null +++ b/components/00_ContentShape/focalPoint/_focalPoint.styl @@ -0,0 +1,48 @@ +// FocalPoint in percentage +RV-FocalPoint(focalX=50%, focalY=50%) + RV-CSSParameter({ + focalX: focalX, + focalY: focalY + }) + + height 100% + width 100% + object-fit cover + object-position --focalX --focalY + +RV-FocalPoint--upperHalf() + RV-CSSParameter({ + focalY: 25% + }) + +RV-FocalPoint--lowerHalf() + RV-CSSParameter({ + focalY: 75% + }) + +RV-FocalPoint--leftHalf() + RV-CSSParameter({ + focalX: 25% + }) + +RV-FocalPoint--rightHalf() + RV-CSSParameter({ + focalX: 75% + }) + +.RV-FocalPoint + RV-FocalPoint() + + &--upperHalf + RV-FocalPoint--upperHalf() + + &--lowerHalf + RV-FocalPoint--lowerHalf() + + &--leftHalf + RV-FocalPoint--leftHalf() + + &--rightHalf + RV-FocalPoint--rightHalf() + + \ No newline at end of file diff --git a/components/00_ContentShape/focalPoint/focalPoint.config.json b/components/00_ContentShape/focalPoint/focalPoint.config.json new file mode 100644 index 0000000..cb5a4be --- /dev/null +++ b/components/00_ContentShape/focalPoint/focalPoint.config.json @@ -0,0 +1,4 @@ +{ + "name": "focalPoint", + "title": "Focal Point" +} \ No newline at end of file diff --git a/components/00_ContentShape/focalPoint/focalPoint.hbs b/components/00_ContentShape/focalPoint/focalPoint.hbs new file mode 100644 index 0000000..b89b832 --- /dev/null +++ b/components/00_ContentShape/focalPoint/focalPoint.hbs @@ -0,0 +1,22 @@ + +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/components/00_ContentShape/shape/_shape.styl b/components/00_ContentShape/shape/_shape.styl new file mode 100644 index 0000000..34ab2f3 --- /dev/null +++ b/components/00_ContentShape/shape/_shape.styl @@ -0,0 +1,34 @@ +RV-Shape--square() + padding-top 100% + width 100% + position relative + + * + position absolute + top 0 + left 0 + bottom 0 + right 0 + +RV-Shape--circle() + padding-top 100% + width 100% + position relative + + &, * + border-radius 50% + + * + position absolute + top 0 + left 0 + bottom 0 + right 0 + +.RV-Shape + + &--square + RV-Shape--square() + + &--circle + RV-Shape--circle() \ No newline at end of file diff --git a/components/00_ContentShape/shape/shape.config.json b/components/00_ContentShape/shape/shape.config.json new file mode 100644 index 0000000..92dc757 --- /dev/null +++ b/components/00_ContentShape/shape/shape.config.json @@ -0,0 +1,17 @@ +{ + "name": "Shape", + "variants": [ + { + "name": "Square", + "context": { + "modifier": "RV-Shape--square" + } + }, + { + "name": "Circle", + "context": { + "modifier": "RV-Shape--circle" + } + } + ] +} \ No newline at end of file diff --git a/components/00_ContentShape/shape/shape.hbs b/components/00_ContentShape/shape/shape.hbs new file mode 100644 index 0000000..8ab86b2 --- /dev/null +++ b/components/00_ContentShape/shape/shape.hbs @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/components/00_ContentShape/truncation/_truncation.styl b/components/00_ContentShape/truncation/_truncation.styl new file mode 100644 index 0000000..7c1280f --- /dev/null +++ b/components/00_ContentShape/truncation/_truncation.styl @@ -0,0 +1,62 @@ +RV-Truncation--fade(background-color=white) + &:after + background-image linear-gradient(180deg, rgba(255, 255, 255, 0), background-color) + display block + content '###' + color transparent + opacity 1 + position absolute + top calc(var(--height) - 60px) + width 100% + height 50px + line-height var(--line-height) + z-index 10 + +RV-Truncation--ellipsis(background-color=white) + &:after + position absolute + display block + right 0 + content '...' + background-color background-color + padding-left 5px + padding-bottom 10px + box-shadow -10px 8px 6px 0px #fff; + line-height var(--line-height) + top calc(var(--height) - 40px) + +RV-Truncation(line-height=1.3, height=350px) + RV-CSSParameter({ + line-height: line-height, + height: height + }) + + background-color = white + display block + overflow hidden + position relative + + height calc_height() + width calc_width() + + * + overflow hidden + display block + position relative + text-overflow ellipsis + background-color background-color + + line-height line-height + max-height floor(height / (line-height * 16)) * (line-height * 16) + + padding 0 + margin 0 + +.RV-Truncation + RV-Truncation() + + &--fade + RV-Truncation--fade() + + &--ellipsis + RV-Truncation--ellipsis() \ No newline at end of file diff --git a/components/00_ContentShape/truncation/truncation.config.json b/components/00_ContentShape/truncation/truncation.config.json new file mode 100644 index 0000000..a923e83 --- /dev/null +++ b/components/00_ContentShape/truncation/truncation.config.json @@ -0,0 +1,17 @@ +{ + "name": "Truncation", + "variants": [ + { + "name": "Fade", + "context": { + "modifier": "RV-Truncation--fade" + } + }, + { + "name": "Ellipsis", + "context": { + "modifier": "RV-Truncation--ellipsis" + } + } + ] +} \ No newline at end of file diff --git a/components/00_ContentShape/truncation/truncation.hbs b/components/00_ContentShape/truncation/truncation.hbs new file mode 100644 index 0000000..6a429e2 --- /dev/null +++ b/components/00_ContentShape/truncation/truncation.hbs @@ -0,0 +1,5 @@ +
+

+ You could see there was text coming out of her eyes, text coming out of her wherever. . Does everybody know that pig named Lorem Ipsum? She's a disgusting pig, right? When other websites give you text, they’re not sending the best. They’re not sending you, they’re sending words that have lots of problems and they’re bringing those problems with us. They’re bringing mistakes. They’re bringing misspellings. They’re typists… And some, I assume, are good words. I'm speaking with myself, number one, because I have a very good brain and I've said a lot of things. Podcasting operational change management inside of workflows to establish a framework. Taking seamless key performance indicators offline to maximise the long tail. Keeping your eye on the ball while performing a deep dive on the start-up mentality to derive convergence on cross-platform integration. +

+
\ No newline at end of file diff --git a/components/00_Tools/_bemGenerator.styl b/components/00_Tools/_bemGenerator.styl index b6df258..1ac96e7 100644 --- a/components/00_Tools/_bemGenerator.styl +++ b/components/00_Tools/_bemGenerator.styl @@ -181,13 +181,13 @@ RV-Block__Modifier--name(name) RV-Block(block_name) & .{block_name} - {block} - foreach(_block.block_modifiers, @(modifier){ - render_block_modifier(modifier) - }) foreach(_block.elements, @(element){ render_element(element) }) + foreach(_block.block_modifiers, @(modifier){ + render_block_modifier(modifier) + }) + {block} reset_block() diff --git a/components/00_Tools/_cssParameter.styl b/components/00_Tools/_cssParameter.styl index ace2c34..86021c8 100644 --- a/components/00_Tools/_cssParameter.styl +++ b/components/00_Tools/_cssParameter.styl @@ -41,4 +41,4 @@ RV-CSSParameter(block) for name, value in block css-var-name = '--%s' % unquote(name) add-property(css-var-name, value) - define(name, unquote('var(--%s)' % (unquote(name))), true) \ No newline at end of file + define('--'+name, unquote('var(--%s)' % (unquote(name))), true) \ No newline at end of file diff --git a/components/00_Tools/_elementAmount.styl b/components/00_Tools/_elementAmount.styl index ca45280..5cde110 100644 --- a/components/00_Tools/_elementAmount.styl +++ b/components/00_Tools/_elementAmount.styl @@ -1,6 +1,12 @@ -RV-Utils__ElementAmount(callback, up-to=20) - for i in (1..up-to) - +RV-Utils__ElementAmount(amount, callback) + if amount == 1 + &:only-child + callback(i, amount) + else *:first-child:nth-last-child({i}), *:first-child:nth-last-child({i})~* - callback(i, up-to) \ No newline at end of file + callback(i, up-to) + +RV-Utils__ElementAmount--range(from=1, to=20, callback) + for i in (from..to) + RV-Utils__ElementAmount(i, callback) \ No newline at end of file diff --git a/components/01_Layouts/_layouts.styl b/components/01_Layouts/_layouts.styl index b0e3695..b5c5a63 100644 --- a/components/01_Layouts/_layouts.styl +++ b/components/01_Layouts/_layouts.styl @@ -1,7 +1,7 @@ +@import 'dummy/_dummy' @import 'contentCrop/_contentCrop' @import 'fullWidthContent/_fullWidthContent' @import 'flexRow/_flexRow' @import 'flexGrid/_flexGrid' @import 'fan/_fan' -@import 'alignment/_alignment' -@import 'dummy/_dummy' \ No newline at end of file +@import 'alignment/_alignment' \ No newline at end of file diff --git a/components/01_Layouts/contentCrop/_contentCrop.styl b/components/01_Layouts/contentCrop/_contentCrop.styl index d1d2c5f..893ee69 100644 --- a/components/01_Layouts/contentCrop/_contentCrop.styl +++ b/components/01_Layouts/contentCrop/_contentCrop.styl @@ -60,7 +60,7 @@ RV-ContentCrop--XtoY(x=1, y=1) +RV-Block__Modifier--name('XtoY') width 100% - padding-top 100% * (y / x) + padding-top 100% * (--y / --x) position relative .RV-Image * @@ -96,12 +96,13 @@ RV-ContentCrop__Text--fade(background-color=white) &:after background-image linear-gradient(180deg, rgba(255, 255, 255, 0), background-color) display block - content ' ' - opacity 0.8 + content '###' + color transparent + opacity 1 position relative - top -25% + top -30px width 100% - height 25% + height 30px z-index 10 RV-ContentCrop__Text--ellipsis(background-color=white) diff --git a/components/01_Layouts/dummy/_dummy.styl b/components/01_Layouts/dummy/_dummy.styl index 851eb0f..7715bac 100644 --- a/components/01_Layouts/dummy/_dummy.styl +++ b/components/01_Layouts/dummy/_dummy.styl @@ -1,4 +1,49 @@ +RV-Block('RV-Dummy') + background-color #F4A460 + &:nth-child(2n) + background-color #6495ED + + &:nth-child(3n) + background-color #90EE90 + + &--oranage + background-color #F4A460 + + &--blue + background-color #6495ED + + &--green + background-color #90EE90 + + &--red + background-color #ce6d6d + + &--yellow + background-color #eae144 + + +RV-Element('Landscape') + min-width 200px + width 100% + min-height 130px + + +RV-Element('Portrait') + min-width 130px + width 100% + min-height 200px + + +RV-Element('Square') + min-width 300px + width 100% + min-height 300px + + +RV-Element__Modifier('large') + height 500px + width 500px + + +RV-Element__Modifier('small') + height 100px + width 100px + +RV-Block__Modifier('square') height 350px width 350px @@ -10,6 +55,6 @@ +RV-Block__Modifier('landscape') width 350px height 150px - + +RV-Block__Modifier('red') background-color #d8583e \ No newline at end of file diff --git a/components/01_Layouts/fan/_fan.styl b/components/01_Layouts/fan/_fan.styl index 211c649..b70c7de 100644 --- a/components/01_Layouts/fan/_fan.styl +++ b/components/01_Layouts/fan/_fan.styl @@ -19,7 +19,7 @@ RV-Fan--horizontal(base-height, base-width) flex-direction row +RV-Element('Surface') - min-width calc_width(base-width) + min-width calc_width('calc(%s * 1.5)' % base-width) height calc_height(base-height) /* @@ -35,6 +35,7 @@ RV-Fan--vertical(base-height, base-width) +RV-Element('Surface') width calc_width(base-width) + min-width initial min-height base-height @@ -71,6 +72,7 @@ RV-Fan--fullWidth(base-height, base-width) +RV-Element('Surface') flex-grow 1 + min-width calc_width('calc(%s * 1.5)' % base-width) /* ############### @@ -94,14 +96,10 @@ RV-Fan__Surface--fixedWidth(width) RV-Fan__Surface(base-height, base-width) +RV-Element--name('Surface') - - RV-ContentCrop() - RV-ContentCrop__Text() - RV-ContentCrop__Image() - overflow hidden height calc_height(base-height) width calc_width() + min-width calc_width('calc(%s * 1.5)' % base-width) flex-grow 20 flex-shrink 0 @@ -113,7 +111,7 @@ RV-Fan__Surface(base-height, base-width) RV-Fan() display flex position relative - min-width calc(2 * var(--base-width)) + min-width min-content /* ######### * CSS-Class @@ -128,23 +126,23 @@ RV-Fan() RV-Fan() +RV-Element() - RV-Fan__Surface(base-height, base-width) + RV-Fan__Surface(--base-height, --base-width) +RV-Element__Modifier() - RV-Fan__Surface--fixedWidth(base-width) + RV-Fan__Surface--fixedWidth(--base-width) +RV-Element__Modifier() - RV-Fan__Surface--fixedHeight(base-height) + RV-Fan__Surface--fixedHeight(--base-height) +RV-Element() - RV-Fan__Base(base-height, base-width) + RV-Fan__Base(--base-height, --base-width) +RV-Block__Modifier() - RV-Fan--fullWidth(base-height, base-width) + RV-Fan--fullWidth(--base-height, --base-width) +RV-Block__Modifier() - RV-Fan--vertical(base-height, base-width) + RV-Fan--vertical(--base-height, --base-width) +RV-Block__Modifier() - RV-Fan--horizontal(base-height, base-width) + RV-Fan--horizontal(--base-height, --base-width) +RV-Block__Modifier() - RV-Fan--auto(base-height, base-width) + RV-Fan--auto(--base-height, --base-width) \ No newline at end of file diff --git a/components/01_Layouts/fan/fan.hbs b/components/01_Layouts/fan/fan.hbs index b08cde5..94dd815 100644 --- a/components/01_Layouts/fan/fan.hbs +++ b/components/01_Layouts/fan/fan.hbs @@ -1,4 +1,12 @@ -
+
+
+
+
+
+
+
+
+
@@ -17,7 +25,4 @@

-
- - - +
\ No newline at end of file diff --git a/components/01_Layouts/flexGrid/_flexGrid.styl b/components/01_Layouts/flexGrid/_flexGrid.styl index 3895cbe..c069104 100644 --- a/components/01_Layouts/flexGrid/_flexGrid.styl +++ b/components/01_Layouts/flexGrid/_flexGrid.styl @@ -20,6 +20,7 @@ RV-FlexGrid--masonry(item-height=300px,item-width=300px) +RV-Element('Item') display inline-block + width 100% height unset margin-bottom: var(--inner-spacing); & > * { @@ -63,29 +64,28 @@ RV-FlexGrid(item-height, item-width) display grid grid-template-columns: repeat(auto-fill, var(--item-width)); - +RV-Block('RV-FlexGrid') RV-CSSParameter({ item-height: 300px, item-width: 300px }) - RV-FlexGrid(item-height, item-width) + RV-FlexGrid(--item-height, --item-width) +RV-Element() - RV-FlexGrid__Item(item-height, item-width) + RV-FlexGrid__Item(--item-height, --item-width) +RV-Block__Modifier() - RV-FlexGrid--autoWidth(item-height, item-width) + RV-FlexGrid--autoWidth(--item-height, --item-width) +RV-Block__Modifier() - RV-FlexGrid--fixedSize(item-height, item-width) + RV-FlexGrid--fixedSize(--item-height, --item-width) +RV-Block__Modifier() - RV-FlexGrid--masonry(item-height,item-width) + RV-FlexGrid--masonry(--item-height, --item-width) +RV-Block__Modifier() - RV-FlexGrid--verticalMasonry(item-height,item-width) + RV-FlexGrid--verticalMasonry(--item-height, --item-width) +RV-Block__Modifier() - RV-FlexGrid--horizontalMasonry(item-height,item-width) \ No newline at end of file + RV-FlexGrid--horizontalMasonry(--item-height, --item-width) \ No newline at end of file diff --git a/components/01_Layouts/flexGrid/flexGrid.hbs b/components/01_Layouts/flexGrid/flexGrid.hbs index 1b07d32..6436a71 100644 --- a/components/01_Layouts/flexGrid/flexGrid.hbs +++ b/components/01_Layouts/flexGrid/flexGrid.hbs @@ -1,3 +1,33 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/01_Layouts/flexRow/_flexRow.styl b/components/01_Layouts/flexRow/_flexRow.styl index 5f58645..aaefea2 100644 --- a/components/01_Layouts/flexRow/_flexRow.styl +++ b/components/01_Layouts/flexRow/_flexRow.styl @@ -23,7 +23,7 @@ RV-FlexRow--breakPoint(localBreakPoint, mediaBreakPoint) RV-Reset() gap 0px - RV-Utils__ElementAmount(@(index, total){ + RV-Utils__ElementAmount--range(0, 20, @(index, total){ min-width "calc((%s - (var(--spacing-inner) * (%s - 1))) / %s - (2 * var(--spacing-inner)))" % (localBreakPoint index index) } ) @@ -144,7 +144,7 @@ RV-FlexRow() RV-FlexRow__Item--wider() +RV-Element__Modifier() - RV-FlexRow__Item--fixedSize(width) + RV-FlexRow__Item--fixedSize(--width) +RV-Element__Modifier() RV-FlexRow__Item--narrower() @@ -168,7 +168,7 @@ RV-FlexRow() RV-FlexRow--vertical() +RV-Block__Modifier() - RV-FlexRow--breakPoint(localBreakPoint, mediaBreakPoint) + RV-FlexRow--breakPoint(--localBreakPoint, --mediaBreakPoint) +RV-Block__Modifier() RV-FlexRow--auto() \ No newline at end of file diff --git a/components/01_Layouts/flexRow/flexRow.config.json b/components/01_Layouts/flexRow/flexRow.config.json index 9e26dfe..f5053bb 100644 --- a/components/01_Layouts/flexRow/flexRow.config.json +++ b/components/01_Layouts/flexRow/flexRow.config.json @@ -1 +1,32 @@ -{} \ No newline at end of file +{ + "title": "FlexRow", + "context": { + "item-shadow" : "drop" + }, + "variants": [ + { + "name": "Horizontal", + "context": { + "modifier": "--horizontal" + } + }, + { + "name": "Vertical", + "context": { + "modifier": "--vertical" + } + }, + { + "name": "Breakpoint", + "context": { + "modifier": "--breakPoint" + } + }, + { + "name": "Auto", + "context": { + "modifier": "--auto" + } + } + ] +} \ No newline at end of file diff --git a/components/01_Layouts/flexRow/flexRow.hbs b/components/01_Layouts/flexRow/flexRow.hbs index 36d6564..996995f 100644 --- a/components/01_Layouts/flexRow/flexRow.hbs +++ b/components/01_Layouts/flexRow/flexRow.hbs @@ -1,38 +1,17 @@ -
-
Im normal
-
Right
-
Center
-
wrapped content left
-
Fixed
-
-

-
-
Im normal
-
Right
-
-

-
-
narrower
-
narrow
-
normal
-
wide
-
wider
-
- -

-
-
.
-
.
-
.
-
.
-
content
-
- -

-
-
sdfkjsakfjsdök
-
adfasfsd
-
asfsdfasd
-
blubbber
-
content
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/components/02_Styles/_styles.styl b/components/02_Styles/_styles.styl index 993e4d2..297c944 100644 --- a/components/02_Styles/_styles.styl +++ b/components/02_Styles/_styles.styl @@ -1,4 +1,4 @@ @import 'spacing/_spacing' - +@import 'elementList/_elementList' @import 'boxShadow/_boxShadow' @import 'iconized/_iconized' diff --git a/components/02_Styles/boxShadow/_boxShadow.styl b/components/02_Styles/boxShadow/_boxShadow.styl index 5bb00a4..1c84a8a 100644 --- a/components/02_Styles/boxShadow/_boxShadow.styl +++ b/components/02_Styles/boxShadow/_boxShadow.styl @@ -93,19 +93,19 @@ RV-BoxShadow() RV-BoxShadow() +RV-Block__Modifier() - RV-BoxShadow--simple(color) + RV-BoxShadow--simple(--color) +RV-Block__Modifier() - RV-BoxShadow--liftedCorners(color) + RV-BoxShadow--liftedCorners(--color) +RV-Block__Modifier() - RV-BoxShadow--levitating(color) + RV-BoxShadow--levitating(--color) +RV-Block__Modifier() - RV-BoxShadow--stacked(color) + RV-BoxShadow--stacked(--color) +RV-Block__Modifier() - RV-BoxShadow--drop(color) + RV-BoxShadow--drop(--color) +RV-Block__Modifier() - RV-BoxShadow--solid(color) \ No newline at end of file + RV-BoxShadow--solid(--color) \ No newline at end of file diff --git a/components/02_Styles/elementList/_elementList.styl b/components/02_Styles/elementList/_elementList.styl new file mode 100644 index 0000000..5c159aa --- /dev/null +++ b/components/02_Styles/elementList/_elementList.styl @@ -0,0 +1,15 @@ +RV-ElementList__Item() + +RV-Element--name('Item') + RV-FlexRow__Item() + +RV-ElementList(break_width=500px) + RV-FlexRow() + RV-Reset() + + list-style-type none + ++RV-Block('RV-ElementList') + RV-ElementList() + + +RV-Element() + RV-ElementList__Item() \ No newline at end of file diff --git a/components/04_Molecules/elementList/elementList.config.json b/components/02_Styles/elementList/elementList.config.json similarity index 100% rename from components/04_Molecules/elementList/elementList.config.json rename to components/02_Styles/elementList/elementList.config.json diff --git a/components/04_Molecules/elementList/elementList.hbs b/components/02_Styles/elementList/elementList.hbs similarity index 100% rename from components/04_Molecules/elementList/elementList.hbs rename to components/02_Styles/elementList/elementList.hbs diff --git a/components/02_Styles/spacing/_spacing.styl b/components/02_Styles/spacing/_spacing.styl index 5e295a1..9a2acf4 100644 --- a/components/02_Styles/spacing/_spacing.styl +++ b/components/02_Styles/spacing/_spacing.styl @@ -1,5 +1,5 @@ RV-Spacing__Outer--small() - +RV-Element__Modifier('small') + +RV-Element__Modifier--name('small') --outer-spacing spacing-small margin var(--outer-spacing) * > { @@ -7,7 +7,7 @@ RV-Spacing__Outer--small() } RV-Spacing__Outer--medium() - +RV-Element__Modifier('medium') + +RV-Element__Modifier--name('medium') --outer-spacing spacing-medium margin var(--outer-spacing) * > { @@ -15,14 +15,14 @@ RV-Spacing__Outer--medium() } RV-Spacing__Outer--large() - +RV-Element__Modifier('large') + +RV-Element__Modifier--name('large') --outer-spacing spacing-large margin var(--outer-spacing) * > { --outer-spacing 0 } RV-Spacing__Inner--small() - +RV-Element__Modifier('small') + +RV-Element__Modifier--name('small') --inner-spacing spacing-small padding var(--inner-spacing) gap var(--inner-spacing) @@ -32,7 +32,7 @@ RV-Spacing__Inner--small() } RV-Spacing__Inner--medium() - +RV-Element__Modifier('medium') + +RV-Element__Modifier--name('medium') --inner-spacing spacing-medium padding var(--inner-spacing) gap var(--inner-spacing) @@ -42,7 +42,7 @@ RV-Spacing__Inner--medium() } RV-Spacing__Inner--large() - +RV-Element__Modifier('large') + +RV-Element__Modifier--name('large') --inner-spacing spacing-large padding var(--inner-spacing) gap var(--inner-spacing) @@ -53,11 +53,17 @@ RV-Spacing__Inner--large() +RV-Block('RV-Spacing') +RV-Element('Outer') - RV-Spacing__Outer--small() - RV-Spacing__Outer--medium() - RV-Spacing__Outer--large() + +RV-Element__Modifier() + RV-Spacing__Outer--small() + +RV-Element__Modifier() + RV-Spacing__Outer--medium() + +RV-Element__Modifier() + RV-Spacing__Outer--large() +RV-Element('Inner') - RV-Spacing__Inner--small() - RV-Spacing__Inner--medium() - RV-Spacing__Inner--large() \ No newline at end of file + +RV-Element__Modifier() + RV-Spacing__Inner--small() + +RV-Element__Modifier() + RV-Spacing__Inner--medium() + +RV-Element__Modifier() + RV-Spacing__Inner--large() \ No newline at end of file diff --git a/components/03_Atoms/_atoms.styl b/components/03_Atoms/_atoms.styl index e69de29..3080350 100644 --- a/components/03_Atoms/_atoms.styl +++ b/components/03_Atoms/_atoms.styl @@ -0,0 +1 @@ +@import 'button/_button' \ No newline at end of file diff --git a/components/03_Atoms/button/_button.styl b/components/03_Atoms/button/_button.styl new file mode 100644 index 0000000..c77ab43 --- /dev/null +++ b/components/03_Atoms/button/_button.styl @@ -0,0 +1,191 @@ +RV-Button--pill() + +RV-Block__Modifier--name('pill') + border-radius calc(var(--size) + var(--line-height) * 16px) + padding-left calc(1.5 * var(--size)) + padding-right calc(1.5 * var(--size)) + +RV-Button--border(color) + +RV-Block__Modifier--name('border') + border 3px solid color + color color + border-radius 0px + + &, * + background-color transparent + + +RV-Element('Icon') + background-color secondary-color + +RV-Button--small() + +RV-Block__Modifier--name('small') + --size spacing-small + + +RV-Element('Icon') + .RV-Image + height calc(var(--size) * 1.8) + +RV-Button--medium() + +RV-Block__Modifier--name('medium') + --size spacing-medium * .6 + +RV-Button--large() + +RV-Block__Modifier--name('large') + --size spacing-large * .5 + +RV-Button--link() + +RV-Block__Modifier--name('link') + border none + border-radius 0px + color primary-color + &, * + background-color transparent + margin 0 + + +RV-Element('Icon') + padding-right calc(var(--size) / 4) + padding-left calc(var(--size) / 4) + +_RV-Button__Icon--shape() + margin-right calc(var(--size) * 1.2) + &, * + z-index 10 + position relative + + &:after, &:before + content '' + width 50% + height 110% + z-index 5 + background-color inherit + position absolute + + +RV-Button__Icon--inwardsArrow() + +RV-Element__Modifier--name('inwardsArrow') + _RV-Button__Icon--shape() + + .RV-Image + left calc(var(--size) * .5) + &:after + transform rotate(-35deg) + left 70% + top 25% + + &:before + transform rotate(35deg) + left 70% + top -35% + +RV-Button__Icon--outwardsArrow() + +RV-Element__Modifier--name('outwardsArrow') + _RV-Button__Icon--shape() + margin-right calc(var(--size) * 2) + + .RV-Image + left calc(var(--size) * .7) + + &:after + transform rotate(35deg) + left 70% + top 25% + + &:before + transform rotate(-35deg) + left 70% + top -37% + +RV-Button__Icon--forwardSlope() + _RV-Button__Icon--shape() + +RV-Element__Modifier--name('forwardSlope') + margin-right calc(var(--size) * 2) + + .RV-Image + left calc(var(--size) * .7) + + &:after + transform rotate(-15deg) + top 0% + +RV-Button__Icon--backwardSlope() + _RV-Button__Icon--shape() + +RV-Element__Modifier--name('backwardSlope') + margin-right calc(var(--size) * 2) + + .RV-Image + left calc(var(--size) * .7) + + &:after + transform rotate(15deg) + top -10% + +RV-Button__Icon() + +RV-Element--name('Icon') + width min-content + background-color primary-color + padding var(--size) + + .RV-Image + height calc(var(--size) * 2.5) + + +RV-Button__Text() + +RV-Element--name('Text') + font-size calc(var(--size) * 1.65) + background-color secondary-color + padding var(--size) + +RV-Button() + background-color #f00 + line-height 1 + overflow hidden + font-family sans-serif + background-color secondary-color + color accent-color + text-decoration none + + RV-Alignment--verticalCenter() + display inline-flex + border-radius 6px + ++RV-Block('RV-Button') + RV-CSSParameter({ + size: spacing-medium + }) + RV-Reset() + RV-Button(height) + + +RV-Element() + RV-Button__Icon() + + +RV-Element__Modifier() + RV-Button__Icon--outwardsArrow() + + +RV-Element__Modifier() + RV-Button__Icon--inwardsArrow() + + +RV-Element__Modifier() + RV-Button__Icon--forwardSlope() + + +RV-Element__Modifier() + RV-Button__Icon--backwardSlope() + + +RV-Element() + RV-Button__Text() + + +RV-Block__Modifier() + RV-Button--pill() + + +RV-Block__Modifier() + RV-Button--link() + + +RV-Block__Modifier() + RV-Button--small() + + +RV-Block__Modifier() + RV-Button--medium() + + +RV-Block__Modifier() + RV-Button--large() + + +RV-Block__Modifier() + RV-Button--border(primary-color) diff --git a/components/03_Atoms/button/button.config.json b/components/03_Atoms/button/button.config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/components/03_Atoms/button/button.config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/components/03_Atoms/button/button.hbs b/components/03_Atoms/button/button.hbs new file mode 100644 index 0000000..9a78839 --- /dev/null +++ b/components/03_Atoms/button/button.hbs @@ -0,0 +1,39 @@ + +
+
+
+ +
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/components/04_Molecules/_molecules.styl b/components/04_Molecules/_molecules.styl index 92b5044..c36862f 100644 --- a/components/04_Molecules/_molecules.styl +++ b/components/04_Molecules/_molecules.styl @@ -1,2 +1,3 @@ -@import 'elementList/_elementList' -@import 'overlayButton/_overlayButton' \ No newline at end of file +@import 'overlayButton/_overlayButton' +@import 'teaser/_teaser' +//@import 'pagination/_pagination' \ No newline at end of file diff --git a/components/04_Molecules/elementList/_elementList.styl b/components/04_Molecules/elementList/_elementList.styl deleted file mode 100644 index 4d9734d..0000000 --- a/components/04_Molecules/elementList/_elementList.styl +++ /dev/null @@ -1,15 +0,0 @@ -RV-ElementList__Item() - @include RV-FlexRow__Item - -RV-ElementList(break_width=500px, prefix='&') - RV-FlexRow__Container() - RV-FlexRow__Container--shorthands() - RV-Reset() - - list-style-type none - - {prefix}__Item - RV-ElementList__Item() - -.RV-ElementList - RV-ElementList() \ No newline at end of file diff --git a/components/04_Molecules/overlayButton/pagination/_pagination.styl b/components/04_Molecules/overlayButton/pagination/_pagination.styl new file mode 100644 index 0000000..e5176f8 --- /dev/null +++ b/components/04_Molecules/overlayButton/pagination/_pagination.styl @@ -0,0 +1,15 @@ +RV-Pagination__Item() + +RV-Element--name('Item') + RV-ElementList__Item() + ++RV-Block('RV-Pagination') + max-width 600px + RV-ElementList() + RV-FlexRow--horizontal() + justify-content space-between + overflow hidden + height 2em + + +RV-Element('Item') + RV-Pagination__Item() + diff --git a/components/04_Molecules/overlayButton/pagination/pagination.config.json b/components/04_Molecules/overlayButton/pagination/pagination.config.json new file mode 100644 index 0000000..b8f2778 --- /dev/null +++ b/components/04_Molecules/overlayButton/pagination/pagination.config.json @@ -0,0 +1,3 @@ +{ + "title": "Pagnination" +} \ No newline at end of file diff --git a/components/04_Molecules/overlayButton/pagination/pagination.hbs b/components/04_Molecules/overlayButton/pagination/pagination.hbs new file mode 100644 index 0000000..a254fd7 --- /dev/null +++ b/components/04_Molecules/overlayButton/pagination/pagination.hbs @@ -0,0 +1,77 @@ + diff --git a/components/04_Molecules/teaser/_teaser.styl b/components/04_Molecules/teaser/_teaser.styl new file mode 100644 index 0000000..60e2b94 --- /dev/null +++ b/components/04_Molecules/teaser/_teaser.styl @@ -0,0 +1,47 @@ ++RV-Block('RV-Teaser') + RV-CSSParameter({ + image-height: 300px, + image-width: 300px, + shadow-color: #6b5690 + + }) + + RV-Fan() + RV-BoxShadow() + RV-BoxShadow--drop(--shadow-color) + + +RV-Element('Image') + RV-Fan__Base(--image-height, --image-width) + + +RV-Element('Preview') + RV-Fan__Surface(--image-height, --image-width) + RV-Spacing__Inner--medium() + RV-FlexRow() + RV-FlexRow--vertical() + + +RV-Element('Text') + color text-color + flex 1 + RV-ContentCrop() + RV-ContentCrop__Text() + RV-ContentCrop__Text--fade() + + .RV-Text + height 100% + + + +RV-Element('Headline') + font-family sans-serif + color primary-color + justify-self center + + +RV-Element('Buttons') + RV-FlexRow__Item() + RV-FlexRow__Item--content() + RV-Spacing__Inner--small() + + RV-FlexRow() + RV-FlexRow--horizontal() + padding 0 + + RV-Fan--fullWidth(--image-height, --image-width) \ No newline at end of file diff --git a/components/04_Molecules/teaser/teaser.config.json b/components/04_Molecules/teaser/teaser.config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/components/04_Molecules/teaser/teaser.config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/components/04_Molecules/teaser/teaser.hbs b/components/04_Molecules/teaser/teaser.hbs new file mode 100644 index 0000000..e588641 --- /dev/null +++ b/components/04_Molecules/teaser/teaser.hbs @@ -0,0 +1,46 @@ +
+
+
+ +
+ +
+
+
+

This is a headline for a teaser it is indeed dear reader

+
+
+
+ Qui sequi et et nostrum esse quae. Quasi voluptas aut adipisci ad quo at. Reiciendis sed vitae vero eaque aliquid ea dolorem. Qui consequatur temporibus quod eius natus ut et. Qui at necessitatibus incidunt et pariatur rem vel. Consequatur voluptas saepe odit voluptate magni possimus iure. + + Qui sequi et et nostrum esse quae. Quasi voluptas aut adipisci ad quo at. Reiciendis sed vitae vero eaque aliquid ea dolorem. Qui consequatur temporibus quod eius natus ut et. Qui at necessitatibus incidunt et pariatur rem vel. Consequatur voluptas saepe odit voluptate magni possimus iure. +
+
+ +
+
\ No newline at end of file diff --git a/components/_components.styl b/components/_components.styl index a3b9f3f..4700900 100644 --- a/components/_components.styl +++ b/components/_components.styl @@ -1,8 +1,11 @@ @import '00_Tools/_tools' + @import '01_Layouts/_layouts' @import '02_Styles/_styles' -//@import '03_Atoms/_atoms' -//@import '04_Molecules/_molecules' +@import '03_Atoms/_atoms' +@import '04_Molecules/_molecules' + +@import '00_ContentShape/_contentShape' //@import '05_Organisms/_organisms' diff --git a/components/_preview.hbs b/components/_preview.hbs index 7925099..e70179b 100644 --- a/components/_preview.hbs +++ b/components/_preview.hbs @@ -41,6 +41,8 @@ - {{{ yield }}} +
+ {{{ yield }}} +
\ No newline at end of file diff --git a/components/colors.styl b/components/colors.styl new file mode 100644 index 0000000..44c9bc8 --- /dev/null +++ b/components/colors.styl @@ -0,0 +1,9 @@ +primary-color = #457B9D +secondary-color = #AAC7DA +text-color = #1F271B +accent-color = #FBD974 +striking-color = #ED6A5A +background-color = #FFFFFA + +text-emphasize-color = primary-color +text-emphasize-interaction-color = accent-color \ No newline at end of file diff --git a/components/rcss.styl b/components/rcss.styl index 557cb1d..4dc9cbe 100644 --- a/components/rcss.styl +++ b/components/rcss.styl @@ -4,4 +4,5 @@ spacing-small = 10px spacing-medium = 25px spacing-large = 35px +@import './colors' @import './_components' \ No newline at end of file diff --git a/public/icons/cancel.svg b/public/icons/cancel.svg new file mode 100644 index 0000000..1c1499a --- /dev/null +++ b/public/icons/cancel.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/icons/debug.png b/public/icons/debug.png new file mode 100644 index 0000000000000000000000000000000000000000..6d62b8df9110aa47816057144592618a7e0cc3c9 GIT binary patch literal 16013 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≪J-q+a6FP6U$7OaTTN@RTZFS?9Va>YUf$+g#2IPZD(UbUA zvqJ}HiW`Yft{C z^s#dg!D9lifc%__(l9J?AWvc9FhjOr)rjBRl@;uvlyM}V&7Z282j{r5RPEHy}9Us0K0f3^fXW8RJ?Cmn1 zzB@ddC){FpG4eq_X`Y)8vppp^IxtT$n$!5j!<6Ne6VV?*%A(4=6_P`O)iqN88HC`2 zVzb7ngMShCJH=|xjC0>Ua?hN+CxO@H8F4Wm0N~XgGDXkNH787IQbx$vo+b1nE@p`C zWDj|wMu0sj^d}{+#_Xc5BuvFyxt_rC>d~@a>I{7wIF`-sTF;$nby#5kzPO}j;@ETI z9dL4R$>)R^Bos*}g_&HrH-Eg@j%&Ht7^6CT4OMWNu0Bnh)=^Y^fv0}O8)nCQE>`B%R5||=igV2WW zlFH43Vc!Ds_Evt}N6Q-C`Se|~myc3pfkvk!+NW(It+Lo6k!>y|_8eA#CdjFd=O{r9kWL^)QqzRa2YsB-&>c zw{N^M6P~iV>##_pQ<-GWJodVY#^)dsy}kh{ruS*XW=_0p(TKm{NA5ZpgYGhzVW^Ozc!o$bV|xA9c@ z_(iT6=6Gz~m)m9friR*kR~J7!W4V4VtO3o=Ctm4FgUVg+7GT--?+Ph;i90M&?7UGv z2=!Ph2{W!7z1+n^jx_=37L-Di?do=%#3L;V+Hfz?>$%qLS;-tUQhgkcv#0K0KPU*P zm=nHeW~N{Jbhzr`oo~x5$9j$5kFnl*IOWvDC zSobGFlc%Cy{$S)FOQ_7aY7o`y{k~Qz{*{T*CqM?6)9yz3Mwa0etFd==d0mf__K2+t zHs_deB8aeI|Bk9LoUzu@qCj}DUP0Eq3)-S#7<-S#O~r`t=p~EcLmI)!(_bZu#(h=L zX@ddfy1U)V1glnF@MpF1*>Z<~=uFllUF93)&dA8n6t09f-6qS!CZJrYmB#Jl4c0%hDK8mXqIt;$TP%B&-Z<8 zlF@{tIcd0O1M#=+zkbN%q%aSUia<#_rZ08!-@p^pWtLc&t6=SIt#;c?6~mD*`f_Gs zjH~m-+A9!S7@WePz5~x^o8_RBRKS?BZRmSZx!DrQZmGX8icImpbjbcS2%2R zJy$_(z~Wn}B~ij7I$bX)s-YGo|0rAwN}_}|Kt8nZIV?7PaS33OQDu5L1;00K&VS4( zQ|L;}(}r6vBVlyF%0O96c%)|?7YrupKYPveV}OFF;>HTn_x*Gi!cXda(zRyh4Jnby zq{gwkb$nKW5vT(T{2ZCAYp_wR!X-n4$&ripmrX&VR6tSZpb4d-+64z4fazfbiHbPE z?y}oxF<|xA)LMj93C2PnUpJMB9B`;n<-6oM>KNJ*{!HLWp5mJ!vB>JD3H>d(-sorzsnrKGB^)$*p-rsUj4Er&Lyf9nBUP-aMnK?F8Gc`@ z@E3IDaSK|@Dps%kh*_bm^4l9G)X1Zi*y|-j$rP?qTM=6Am=#I4XOCKBZ%d9gsDjKX z2^@8H+hDin*K)1>&HtzLeG1ETI62%SRFu%DM8t`U_q!Xo�(aijs>bT7(ac$rQLL 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 N002ovPDHLkV1f#_8^izr literal 0 HcmV?d00001 diff --git a/public/icons/favourite.svg b/public/icons/favourite.svg new file mode 100644 index 0000000..18b2e0d --- /dev/null +++ b/public/icons/favourite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/flag.svg b/public/icons/flag.svg new file mode 100644 index 0000000..957197c --- /dev/null +++ b/public/icons/flag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/hamburger_menu.svg b/public/icons/hamburger_menu.svg new file mode 100644 index 0000000..5755197 --- /dev/null +++ b/public/icons/hamburger_menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/information.svg b/public/icons/information.svg new file mode 100644 index 0000000..06683f1 --- /dev/null +++ b/public/icons/information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/location.svg b/public/icons/location.svg new file mode 100644 index 0000000..ddaff61 --- /dev/null +++ b/public/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/message.svg b/public/icons/message.svg new file mode 100644 index 0000000..5cacb29 --- /dev/null +++ b/public/icons/message.svg @@ -0,0 +1 @@ +Wondicon - UI (Free) \ No newline at end of file diff --git a/public/icons/plus.svg b/public/icons/plus.svg new file mode 100644 index 0000000..96fb731 --- /dev/null +++ b/public/icons/plus.svg @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/public/icons/social/facebook.svg b/public/icons/social/facebook.svg new file mode 100644 index 0000000..21a86a2 --- /dev/null +++ b/public/icons/social/facebook.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/instagram.svg b/public/icons/social/instagram.svg new file mode 100644 index 0000000..13e1d18 --- /dev/null +++ b/public/icons/social/instagram.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/mastodon.svg b/public/icons/social/mastodon.svg new file mode 100644 index 0000000..4dcdf6e --- /dev/null +++ b/public/icons/social/mastodon.svg @@ -0,0 +1,62 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/twitter.svg b/public/icons/social/twitter.svg new file mode 100644 index 0000000..7d521e0 --- /dev/null +++ b/public/icons/social/twitter.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/vimeo.svg b/public/icons/social/vimeo.svg new file mode 100644 index 0000000..dee9573 --- /dev/null +++ b/public/icons/social/vimeo.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/vkontakte.svg b/public/icons/social/vkontakte.svg new file mode 100644 index 0000000..ce5f2fd --- /dev/null +++ b/public/icons/social/vkontakte.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/wordpress.svg b/public/icons/social/wordpress.svg new file mode 100644 index 0000000..29d92ca --- /dev/null +++ b/public/icons/social/wordpress.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/social/youtube.svg b/public/icons/social/youtube.svg new file mode 100644 index 0000000..1512767 --- /dev/null +++ b/public/icons/social/youtube.svg @@ -0,0 +1,52 @@ + +image/svg+xml + + + + diff --git a/public/icons/success.svg b/public/icons/success.svg new file mode 100644 index 0000000..85fac9a --- /dev/null +++ b/public/icons/success.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/public/images/portrait_lowFocelPoint.jpeg b/public/images/portrait_lowFocelPoint.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d31d002c129edf3a9fd817efc0cf33e8978e353b GIT binary patch literal 78636 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 z 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 literal 0 HcmV?d00001 diff --git a/public/rcss.css b/public/rcss.css index 13a83aa..4042558 100644 --- a/public/rcss.css +++ b/public/rcss.css @@ -1,25 +1,93 @@ +.RV-Dummy { + background-color: #f4a460; +} +.RV-Dummy__Landscape { + min-width: 200px; + width: 100%; + min-height: 130px; +} +.RV-Dummy__Portrait { + min-width: 130px; + width: 100%; + min-height: 200px; +} +.RV-Dummy__Square { + min-width: 300px; + width: 100%; + min-height: 300px; +} +.RV-Dummy__Square--large { + height: 500px; + width: 500px; +} +.RV-Dummy__Square--small { + height: 100px; + width: 100px; +} +.RV-Dummy--square { + height: 350px; + width: 350px; +} +.RV-Dummy--portrait { + height: 350px; + width: 150px; +} +.RV-Dummy--landscape { + width: 350px; + height: 150px; +} +.RV-Dummy--red { + background-color: #d8583e; +} +.RV-Dummy:nth-child(2n) { + background-color: #6495ed; +} +.RV-Dummy:nth-child(3n) { + background-color: #90ee90; +} +.RV-Dummy--oranage { + background-color: #f4a460; +} +.RV-Dummy--blue { + background-color: #6495ed; +} +.RV-Dummy--green { + background-color: #90ee90; +} +.RV-Dummy--red { + background-color: #ce6d6d; +} +.RV-Dummy--yellow { + background-color: #eae144; +} .RV-ContentCrop { display: block; overflow: hidden; height: calc(100% - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); } -.RV-ContentCrop .RV-Image { - width: 100%; - height: 100%; - object-fit: cover; - display: block; -} -.RV-ContentCrop .RV-Text { - overflow: hidden; - display: block; +.RV-ContentCrop__--ellipsis:after { position: relative; - text-overflow: ellipsis; + display: block; + bottom: 1.2em; + left: calc(100% - 3ch); + content: '...'; + font-size: 1.2em; + min-width: 2em; background-color: #fff; - line-height: 1.1; - max-height: 334.40000000000003px; - padding: 0; - margin: 0; + padding: 0 2px; +} +.RV-ContentCrop__--fade:after { + background-image: linear-gradient(180deg, rgba(255,255,255,0), #fff); + display: block; + content: '###'; + color: transparent; + opacity: 1; + position: relative; + top: -30px; + width: 100%; + height: 30px; + z-index: 10; } .RV-ContentCrop--bottom .RV-Image * { object-position: bottom; @@ -63,27 +131,22 @@ bottom: 0; right: 0; } -.RV-ContentCrop__--ellipsis:after { - position: relative; - display: block; - bottom: 1.2em; - left: calc(100% - 3ch); - content: '...'; - font-size: 1.2em; - min-width: 2em; - background-color: #fff; - padding: 0 2px; -} -.RV-ContentCrop__--fade:after { - background-image: linear-gradient(180deg, rgba(255,255,255,0), #fff); - display: block; - content: ' '; - opacity: 0.8; - position: relative; - top: -25%; +.RV-ContentCrop .RV-Image { width: 100%; - height: 25%; - z-index: 10; + height: 100%; + object-fit: cover; + display: block; +} +.RV-ContentCrop .RV-Text { + overflow: hidden; + display: block; + position: relative; + text-overflow: ellipsis; + background-color: #fff; + line-height: 1.1; + max-height: 334.40000000000003px; + padding: 0; + margin: 0; } .RV-FullWidthContent { width: 100%; @@ -98,120 +161,6 @@ --localBreakPoint: 500px; --mediaBreakPoint: 100vw; } -.RV-FlexRow--auto { - flex-direction: row; -} -.RV-FlexRow--vertical { - flex-direction: column; -} -.RV-FlexRow--breakPoint { - flex-wrap: wrap; - margin: 0; - padding: 0; - top: 0; - bottom: 0; - left: 0; - right: 0; - border: none; - gap: 0; - --inner-spacing: 0px; - --outer-spacing: 0px; - gap: 0px; -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(1), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(1)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (1 - 1))) / 1 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(2), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(2)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (2 - 1))) / 2 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(3), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(3)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (3 - 1))) / 3 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(4), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(4)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (4 - 1))) / 4 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(5), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(5)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (5 - 1))) / 5 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(6), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(6)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (6 - 1))) / 6 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(7), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(7)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (7 - 1))) / 7 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(8), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(8)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (8 - 1))) / 8 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(9), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(9)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (9 - 1))) / 9 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(10), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(10)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (10 - 1))) / 10 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(11), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(11)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (11 - 1))) / 11 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(12), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(12)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (12 - 1))) / 12 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(13), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(13)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (13 - 1))) / 13 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(14), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(14)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (14 - 1))) / 14 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(15), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(15)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (15 - 1))) / 15 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(16), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(16)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (16 - 1))) / 16 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(17), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(17)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (17 - 1))) / 17 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(18), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(18)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (18 - 1))) / 18 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(19), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(19)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (19 - 1))) / 19 - (2 * var(--spacing-inner))); -} -.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), -.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { - min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (20 - 1))) / 20 - (2 * var(--spacing-inner))); -} -@media (max-width: var(--mediaBreakPoint)) { - .RV-FlexRow--breakPoint { - flex-direction: row; - } -} -.RV-FlexRow--breakPoint .RV-FlexRow__Item { - min-width: initial; - flex-basis: calc(var(--localBreakPoint) * 999 - 100% * 999); - overflow: hidden; -} -.RV-FlexRow--auto { - flex-direction: row; - flex-wrap: wrap; -} .RV-FlexRow__Item { flex-basis: max-content; flex-grow: 3; @@ -257,11 +206,135 @@ flex-shrink: 0; flex-basis: max-content; } +.RV-FlexRow--auto { + flex-direction: row; +} +.RV-FlexRow--vertical { + flex-direction: column; +} +.RV-FlexRow--breakPoint { + flex-wrap: wrap; + margin: 0; + padding: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; + border: none; + gap: 0; + --inner-spacing: 0px; + --outer-spacing: 0px; + gap: 0px; +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(i), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(i)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint:only-child { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20), +.RV-FlexRow--breakPoint *:first-child:nth-last-child(20)~* { + min-width: calc((var(--localBreakPoint) - (var(--spacing-inner) * (i - 1))) / i - (2 * var(--spacing-inner))); +} +@media (max-width: var(--mediaBreakPoint)) { + .RV-FlexRow--breakPoint { + flex-direction: row; + } +} +.RV-FlexRow--breakPoint .RV-FlexRow__Item { + min-width: initial; + flex-basis: calc(var(--localBreakPoint) * 999 - 100% * 999); + overflow: hidden; +} +.RV-FlexRow--auto { + flex-direction: row; + flex-wrap: wrap; +} .RV-FlexGrid { --item-height: 300px; --item-width: 300px; display: grid; - grid-template-columns: repeat(auto-fill, var(--item-width)); + grid-template-columns: repeat(auto-fill, var(var(--item-width))); +} +.RV-FlexGrid__Item { + height: calc(var(--item-height) - calc(2*var(--inner-spacing))); +} +.RV-FlexGrid__Item > * { + height: 100%; + width: 100%; } .RV-FlexGrid--autoWidth { grid-template-columns: repeat(auto-fill, minmax(var(--item-width), 1fr)); @@ -281,18 +354,34 @@ } .RV-FlexGrid--masonry .RV-FlexGrid__Item { display: inline-block; + width: 100%; height: unset; margin-bottom: var(--inner-spacing); } .RV-FlexGrid--masonry .RV-FlexGrid__Item > * { height: auto; } -.RV-FlexGrid__Item { - height: calc(var(--item-height) - calc(2*var(--inner-spacing))); +.RV-FlexGrid--verticalMasonry { + display: block; + column-count: auto; + column-width: var(--item-width); } -.RV-FlexGrid__Item > * { - height: 100%; - width: 100%; +.RV-FlexGrid--verticalMasonry .RV-FlexGrid__Item { + display: inline-block; + height: unset; + margin-bottom: var(--inner-spacing); +} +.RV-FlexGrid--verticalMasonry .RV-FlexGrid__Item > * { + height: auto; +} +.RV-FlexGrid--horizontalMasonry { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} +.RV-FlexGrid--horizontalMasonry .RV-FlexGrid__Item { + height: calc(var(--item-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + width: calc(max-content - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); } .RV-Fan { --base-height: 280px; @@ -300,69 +389,16 @@ --inner-spacing: 0px; display: flex; position: relative; -} -.RV-Fan--fullWidth { - flex-flow: row wrap; -} -.RV-Fan--fullWidth .RV-Fan__Surface { - min-width: calc(calc(var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - width: calc(calc(100% - var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); -} -.RV-Fan--fullWidth .RV-Fan__Base { - flex-grow: 1; -} -.RV-Fan--fullWidth .RV-Fan__Surface { - flex-grow: 1; -} -.RV-Fan--vertical { - flex-direction: column; - width: max-content; -} -.RV-Fan--vertical .RV-Fan__Surface { - width: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - min-height: var(--base-height); -} -.RV-Fan--horizontal { - flex-direction: row; -} -.RV-Fan--horizontal .RV-Fan__Surface { - min-width: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); -} -.RV-Fan--auto { - flex-flow: row wrap; -} -.RV-Fan--auto .RV-Fan__Surface { - min-width: calc(calc(var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - width: calc(calc(100% - var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + min-width: min-content; } .RV-Fan__Surface { - display: block; - overflow: hidden; - height: calc(100% - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); - width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); overflow: hidden; height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); -} -.RV-Fan__Surface .RV-Image { - width: 100%; - height: 100%; - object-fit: cover; - display: block; -} -.RV-Fan__Surface .RV-Text { - overflow: hidden; - display: block; - position: relative; - text-overflow: ellipsis; - background-color: #fff; - line-height: 1.1; - max-height: 334.40000000000003px; - padding: 0; - margin: 0; + min-width: calc(calc(var(--base-width) * 1.5) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + flex-grow: 20; + flex-shrink: 0; + flex-basis: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); } .RV-Fan__Surface--fixedWidth { max-width: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); @@ -373,7 +409,56 @@ .RV-Fan__Base { height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); width: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); - flex: 0 0 auto; + flex-grow: 0; + flex-shrink: 0; + flex-basis: auto; +} +.RV-Fan--fullWidth { + flex-flow: row wrap; + min-width: initial; + min-width: min-content; +} +.RV-Fan--fullWidth .RV-Fan__Surface { + min-width: calc(calc(var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + width: calc(calc(100% - var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + flex-grow: unset; + flex-basis: unset; +} +.RV-Fan--fullWidth .RV-Fan__Base { + flex-grow: 1; +} +.RV-Fan--fullWidth .RV-Fan__Surface { + flex-grow: 1; + min-width: calc(calc(var(--base-width) * 1.5) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); +} +.RV-Fan--vertical { + flex-direction: column; + width: max-content; + min-width: initial; +} +.RV-Fan--vertical .RV-Fan__Surface { + width: calc(var(--base-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + min-width: initial; + min-height: var(--base-height); +} +.RV-Fan--horizontal { + flex-direction: row; +} +.RV-Fan--horizontal .RV-Fan__Surface { + min-width: calc(calc(var(--base-width) * 1.5) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); +} +.RV-Fan--auto { + flex-flow: row wrap; + min-width: initial; +} +.RV-Fan--auto .RV-Fan__Surface { + min-width: calc(calc(var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + width: calc(calc(100% - var(--base-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + height: calc(var(--base-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + flex-grow: unset; + flex-basis: unset; } .RV-Alignment { display: grid; @@ -400,62 +485,79 @@ align-items: center; justify-content: center; } -.RV-Dummy--square { - height: 350px; - width: 350px; -} -.RV-Dummy--portrait { - height: 350px; - width: 150px; -} -.RV-Dummy--landscape { - width: 350px; - height: 150px; -} -.RV-Dummy--red { - background-color: #d8583e; -} .RV-Spacing__Outer--small { - margin: 10px; --outer-spacing: 10px; + margin: var(--outer-spacing); +} +.RV-Spacing__Outer--small * > { + --outer-spacing: 0; } .RV-Spacing__Outer--medium { - margin: 25px; --outer-spacing: 25px; + margin: var(--outer-spacing); +} +.RV-Spacing__Outer--medium * > { + --outer-spacing: 0; } .RV-Spacing__Outer--large { - margin: 35px; --outer-spacing: 35px; + margin: var(--outer-spacing); +} +.RV-Spacing__Outer--large * > { + --outer-spacing: 0; } .RV-Spacing__Inner--small { - padding: 10px; - gap: 10px; - column-gap: 10px; --inner-spacing: 10px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); +} +.RV-Spacing__Inner--small * > { + --inner-spacing: 0; } .RV-Spacing__Inner--medium { - padding: 25px; - gap: 25px; - column-gap: 25px; --inner-spacing: 25px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); +} +.RV-Spacing__Inner--medium * > { + --inner-spacing: 0; } .RV-Spacing__Inner--large { - padding: 35px; - gap: 35px; - column-gap: 35px; --inner-spacing: 35px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); +} +.RV-Spacing__Inner--large * > { + --inner-spacing: 0; +} +.RV-ElementList { + display: flex; + height: 100%; + margin: 0; + padding: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; + border: none; + gap: 0; + --inner-spacing: 0px; + --outer-spacing: 0px; + list-style-type: none; +} +.RV-ElementList__Item { + flex-basis: max-content; + flex-grow: 3; + flex-shrink: 3; } .RV-BoxShadow { --color: #6b5690; position: relative; background-color: #fff; } -.RV-BoxShadow:before, -.RV-BoxShadow:after { - content: ''; - position: absolute; - z-index: -2; -} .RV-BoxShadow--simple { box-shadow: 0 0 10px 3px var(--color); } @@ -499,6 +601,24 @@ padding: 8px; margin: -8px; } +.RV-BoxShadow:before, +.RV-BoxShadow:after { + content: ''; + position: absolute; + z-index: -2; +} +.RV-Iconized__Icon { + margin: 0; + padding: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; + border: none; + gap: 0; + --inner-spacing: 0px; + --outer-spacing: 0px; +} .RV-Iconized--extraSmall .RV-Iconized__Icon { width: 1em; height: 1em; @@ -541,7 +661,8 @@ position: relative; top: 2.175em; } -.RV-Iconized__Icon { +.RV-Button { + --size: 25px; margin: 0; padding: 0; top: 0; @@ -552,6 +673,552 @@ gap: 0; --inner-spacing: 0px; --outer-spacing: 0px; + background-color: #f00; + line-height: 1; + overflow: hidden; + font-family: sans-serif; + background-color: #aac7da; + color: #fbd974; + text-decoration: none; + align-items: center; + display: inline-flex; + border-radius: 6px; +} +.RV-Button__Icon { + width: min-content; + background-color: #457b9d; + padding: var(var(--size)); +} +.RV-Button__Icon .RV-Image { + height: calc(var(--size) * 2.5); +} +.RV-Button__Icon--outwardsArrow { + margin-right: calc(var(--size) * 1.2); + margin-right: calc(var(--size) * 2); +} +.RV-Button__Icon--outwardsArrow, +.RV-Button__Icon--outwardsArrow * { + z-index: 10; + position: relative; +} +.RV-Button__Icon--outwardsArrow:after, +.RV-Button__Icon--outwardsArrow:before { + content: ''; + width: 50%; + height: 110%; + z-index: 5; + background-color: inherit; + position: absolute; +} +.RV-Button__Icon--outwardsArrow .RV-Image { + left: calc(var(--size) * 0.7); +} +.RV-Button__Icon--outwardsArrow:after { + transform: rotate(35deg); + left: 70%; + top: 25%; +} +.RV-Button__Icon--outwardsArrow:before { + transform: rotate(-35deg); + left: 70%; + top: -37%; +} +.RV-Button__Icon--inwardsArrow { + margin-right: calc(var(--size) * 1.2); +} +.RV-Button__Icon--inwardsArrow, +.RV-Button__Icon--inwardsArrow * { + z-index: 10; + position: relative; +} +.RV-Button__Icon--inwardsArrow:after, +.RV-Button__Icon--inwardsArrow:before { + content: ''; + width: 50%; + height: 110%; + z-index: 5; + background-color: inherit; + position: absolute; +} +.RV-Button__Icon--inwardsArrow .RV-Image { + left: calc(var(--size) * 0.5); +} +.RV-Button__Icon--inwardsArrow:after { + transform: rotate(-35deg); + left: 70%; + top: 25%; +} +.RV-Button__Icon--inwardsArrow:before { + transform: rotate(35deg); + left: 70%; + top: -35%; +} +.RV-Button__Icon--forwardSlope { + margin-right: calc(var(--size) * 2); + margin-right: calc(var(--size) * 1.2); +} +.RV-Button__Icon--forwardSlope .RV-Image { + left: calc(var(--size) * 0.7); +} +.RV-Button__Icon--forwardSlope:after { + transform: rotate(-15deg); + top: 0%; +} +.RV-Button__Icon--forwardSlope, +.RV-Button__Icon--forwardSlope * { + z-index: 10; + position: relative; +} +.RV-Button__Icon--forwardSlope:after, +.RV-Button__Icon--forwardSlope:before { + content: ''; + width: 50%; + height: 110%; + z-index: 5; + background-color: inherit; + position: absolute; +} +.RV-Button__Icon--backwardSlope { + margin-right: calc(var(--size) * 2); + margin-right: calc(var(--size) * 1.2); +} +.RV-Button__Icon--backwardSlope .RV-Image { + left: calc(var(--size) * 0.7); +} +.RV-Button__Icon--backwardSlope:after { + transform: rotate(15deg); + top: -10%; +} +.RV-Button__Icon--backwardSlope, +.RV-Button__Icon--backwardSlope * { + z-index: 10; + position: relative; +} +.RV-Button__Icon--backwardSlope:after, +.RV-Button__Icon--backwardSlope:before { + content: ''; + width: 50%; + height: 110%; + z-index: 5; + background-color: inherit; + position: absolute; +} +.RV-Button__Text { + font-size: calc(var(--size) * 1.65); + background-color: #aac7da; + padding: var(var(--size)); +} +.RV-Button--pill { + border-radius: calc(var(--size) + var(--line-height) * 16px); + padding-left: calc(1.5 * var(--size)); + padding-right: calc(1.5 * var(--size)); +} +.RV-Button--link { + border: none; + border-radius: 0px; + color: #457b9d; +} +.RV-Button--link, +.RV-Button--link * { + background-color: transparent; + margin: 0; +} +.RV-Button--link .RV-Button__Icon { + padding-right: calc(var(--size) / 4); + padding-left: calc(var(--size) / 4); +} +.RV-Button--small { + --size: 10px; +} +.RV-Button--small .RV-Button__Icon .RV-Image { + height: calc(var(--size) * 1.8); +} +.RV-Button--medium { + --size: 15px; +} +.RV-Button--large { + --size: 17.5px; +} +.RV-Button--border { + border: 3px solid #457b9d; + color: #457b9d; + border-radius: 0px; +} +.RV-Button--border, +.RV-Button--border * { + background-color: transparent; +} +.RV-Button--border .RV-Button__Icon { + background-color: #aac7da; +} +.RV-OverlayButton__Item { + position: relative; +} +.RV-OverlayButton__Item:hover > * { + opacity: 1; +} +.RV-OverlayButton__Button { + text-align: center; + display: inline-block; + position: absolute; + background-color: #f5f5dc; + margin: 10px; + opacity: 0.2; + border-radius: 10px; + text-decoration: none; + align-items: center; + justify-content: center; + width: 50px; + height: 50px; + font-size: 25px; + line-height: 25px; +} +.RV-OverlayButton__Button--circle { + border-radius: 50%; +} +.RV-OverlayButton__Button--topRight { + right: 0; + top: 0; +} +.RV-OverlayButton__Button--small { + width: 30px; + height: 30px; + font-size: 15px; + line-height: 15px; +} +.RV-OverlayButton__Button--medium { + width: 50px; + height: 50px; + font-size: 25px; + line-height: 25px; +} +.RV-OverlayButton__Button--large { + width: 70px; + height: 70px; + font-size: 35px; + line-height: 35px; +} +.RV-OverlayButton__Row { + align-items: center; + justify-content: center; + --inner-spacing: 25px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); + position: absolute; + bottom: 0; + height: 4em; + opacity: 0.2; + width: 100%; + justify-content: center; + background-color: rgba(255,255,255,0.5); + padding-left: 0; + padding-right: 0; +} +.RV-OverlayButton__Row * > { + --inner-spacing: 0; +} +.RV-OverlayButton__Row * { + position: initial; + opacity: initial; + margin: 0; + padding: 0; +} +.RV-Teaser { + --image-height: 300px; + --image-width: 300px; + --shadow-color: #6b5690; + display: flex; + position: relative; + min-width: min-content; + position: relative; + background-color: #fff; + position: relative; + box-shadow: 0 1px 4px var(--shadow-color); + flex-flow: row wrap; + min-width: initial; + min-width: min-content; +} +.RV-Teaser__Image { + height: calc(var(--image-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + width: calc(var(--image-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + flex-grow: 0; + flex-shrink: 0; + flex-basis: auto; +} +.RV-Teaser__Preview { + overflow: hidden; + height: calc(var(--image-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + min-width: calc(calc(var(--image-width) * 1.5) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + flex-grow: 20; + flex-shrink: 0; + flex-basis: calc(var(--image-width) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + --inner-spacing: 25px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); + display: flex; + height: 100%; + flex-direction: column; +} +.RV-Teaser__Preview * > { + --inner-spacing: 0; +} +.RV-Teaser__Text { + color: #1f271b; + flex: 1; + display: block; + overflow: hidden; + height: calc(100% - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); +} +.RV-Teaser__Text .RV-Image { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} +.RV-Teaser__Text .RV-Text { + overflow: hidden; + display: block; + position: relative; + text-overflow: ellipsis; + background-color: #fff; + line-height: 1.1; + max-height: 334.40000000000003px; + padding: 0; + margin: 0; +} +.RV-Teaser__Text:after { + background-image: linear-gradient(180deg, rgba(255,255,255,0), #fff); + display: block; + content: '###'; + color: transparent; + opacity: 1; + position: relative; + top: -30px; + width: 100%; + height: 30px; + z-index: 10; +} +.RV-Teaser__Text .RV-Text { + height: 100%; +} +.RV-Teaser__Headline { + font-family: sans-serif; + color: #457b9d; + justify-self: center; +} +.RV-Teaser__Buttons { + flex-basis: max-content; + flex-grow: 3; + flex-shrink: 3; + flex-grow: 0; + flex-shrink: 0; + flex-basis: max-content; + --inner-spacing: 10px; + padding: var(--inner-spacing); + gap: var(--inner-spacing); + column-gap: var(--inner-spacing); + display: flex; + height: 100%; + flex-direction: row; + padding: 0; +} +.RV-Teaser__Buttons * > { + --inner-spacing: 0; +} +.RV-Teaser__Preview { + min-width: calc(calc(var(--image-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + width: calc(calc(100% - var(--image-width)) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); + height: calc(var(--image-height) - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + flex-grow: unset; + flex-basis: unset; +} +.RV-Teaser__Image { + flex-grow: 1; +} +.RV-Teaser__Preview { + flex-grow: 1; + min-width: calc(calc(var(--image-width) * 1.5) - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); +} +.RV-Teaser:before, +.RV-Teaser:after { + content: ''; + position: absolute; + z-index: -2; +} +.RV-Teaser:after { + box-shadow: 0 0 40px var(--shadow-color); + bottom: 0px; + left: 10%; + right: 10%; + width: 80%; + height: 50%; + border-radius: 100%; +} +.RV-AspectRatio { + position: relative; + overflow: hidden; + height: unset; + width: unset; +} +.RV-AspectRatio * { + object-fit: cover; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +.RV-AspectRatio--1to2 { + --aspectX: 1; + --aspectY: 2; + padding-top: calc(100% * calc(var(--aspectY) / var(--aspectX))); +} +.RV-AspectRatio--1to2:last-child { + margin-bottom: calc(-1 * 100% * calc(var(--aspectY) / var(--aspectX)) + var(--outer-spacing)); +} +.RV-AspectRatio--1to2:only-child { + margin-bottom: 0px; +} +.RV-AspectRatio--2to1 { + --aspectX: 2; + --aspectY: 1; + padding-top: calc(100% * calc(var(--aspectY) / var(--aspectX))); +} +.RV-AspectRatio--2to1:last-child { + margin-bottom: calc(-1 * 100% * calc(var(--aspectY) / var(--aspectX)) + var(--outer-spacing)); +} +.RV-AspectRatio--2to1:only-child { + margin-bottom: 0px; +} +.RV-AspectRatio--3to2 { + --aspectX: 3; + --aspectY: 2; + padding-top: calc(100% * calc(var(--aspectY) / var(--aspectX))); +} +.RV-AspectRatio--3to2:last-child { + margin-bottom: calc(-1 * 100% * calc(var(--aspectY) / var(--aspectX)) + var(--outer-spacing)); +} +.RV-AspectRatio--3to2:only-child { + margin-bottom: 0px; +} +.RV-AspectRatio--4to3 { + --aspectX: 4; + --aspectY: 3; + padding-top: calc(100% * calc(var(--aspectY) / var(--aspectX))); +} +.RV-AspectRatio--4to3:last-child { + margin-bottom: calc(-1 * 100% * calc(var(--aspectY) / var(--aspectX)) + var(--outer-spacing)); +} +.RV-AspectRatio--4to3:only-child { + margin-bottom: 0px; +} +.RV-AspectRatio--16to9 { + --aspectX: 16; + --aspectY: 9; + padding-top: calc(100% * calc(var(--aspectY) / var(--aspectX))); +} +.RV-AspectRatio--16to9:last-child { + margin-bottom: calc(-1 * 100% * calc(var(--aspectY) / var(--aspectX)) + var(--outer-spacing)); +} +.RV-AspectRatio--16to9:only-child { + margin-bottom: 0px; +} +.RV-FocalPoint { + --focalX: 50%; + --focalY: 50%; + height: 100%; + width: 100%; + object-fit: cover; + object-position: var(--focalX) var(--focalY); +} +.RV-FocalPoint--upperHalf { + --focalY: 25%; +} +.RV-FocalPoint--lowerHalf { + --focalY: 75%; +} +.RV-FocalPoint--leftHalf { + --focalX: 25%; +} +.RV-FocalPoint--rightHalf { + --focalX: 75%; +} +.RV-Shape--square { + padding-top: 100%; + width: 100%; + position: relative; +} +.RV-Shape--square * { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +.RV-Shape--circle { + padding-top: 100%; + width: 100%; + position: relative; +} +.RV-Shape--circle, +.RV-Shape--circle * { + border-radius: 50%; +} +.RV-Shape--circle * { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +.RV-Truncation { + --line-height: 1.3; + --height: 350px; + display: block; + overflow: hidden; + position: relative; + height: calc(100% - (2 * var(--inner-spacing)) - (2 * var(--outer-spacing))); + width: calc(100% - calc(2 * var(--inner-spacing)) - calc(2 * var(--outer-spacing))); +} +.RV-Truncation * { + overflow: hidden; + display: block; + position: relative; + text-overflow: ellipsis; + background-color: #fff; + line-height: 1.3; + max-height: 332.8px; + padding: 0; + margin: 0; +} +.RV-Truncation--fade:after { + background-image: linear-gradient(180deg, rgba(255,255,255,0), #fff); + display: block; + content: '###'; + color: transparent; + opacity: 1; + position: absolute; + top: calc(var(--height) - 60px); + width: 100%; + height: 50px; + line-height: var(var(--line-height)); + z-index: 10; +} +.RV-Truncation--ellipsis:after { + position: absolute; + display: block; + right: 0; + content: '...'; + background-color: #fff; + padding-left: 5px; + padding-bottom: 10px; + box-shadow: -10px 8px 6px 0px #fff; + line-height: var(var(--line-height)); + top: calc(var(--height) - 40px); } * { margin: 0; diff --git a/revelogo.svg b/revelogo.svg new file mode 100644 index 0000000..6d4a015 --- /dev/null +++ b/revelogo.svg @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file