/* * Classes for easy flexrow usage */ /* * Orientation */ RV-FlexRow--horizontal() +RV-Block--modifier() flex-direction row RV-FlexRow--vertical() +RV-Block--modifier() flex-direction column +RV-Element('Item') margin-bottom unset RV-FlexRow__Item--outsideBreakPoint() +RV-Element--modifier() margin-bottom -100vh height max-content flex-shrink 999 RV-FlexRow__Item--insideBreakPoint() +RV-Element--modifier() flex-grow 0 /* * Breaks from row to column orientation at the given breakpoint * breaks when the container is smaller than $-localBreakPoint or when the viewport is smaller than $-mediaBreakPoint. */ RV-FlexRow--breakPoint(localBreakPoint, mediaBreakPoint=0) +RV-Block--modifier() RV-Reset() gap 0px 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) } ) +RV-Element('Item') min-width initial flex-basis 'calc(%s * 999 - 100% * 999)' % localBreakPoint overflow hidden RV-FlexRow__Item--outsideBreakPoint() RV-FlexRow__Item--insideBreakPoint() margin 0 padding 0 --_spacing-difference calc(var(--inner-spacing) - var(--outer-spacing)) --height 100% * position relative height calc(var(--height) - var(--_spacing-difference)) width calc(var(--height) - var(--_spacing-difference)) top calc(var(--_spacing-difference) / 2) left calc(var(--_spacing-difference) / 2) @media(max-width mediaBreakPoint) flex-direction row /* * Typical Flexbox behavior, Row is horizontal, but item are wraped individualy */ RV-FlexRow--auto() +RV-Block--modifier() +RV-Squash() RV-FlexRow--horizontal() flex-wrap wrap /* ########## * Item class ########### */ RV-FlexRow__Item() +RV-Element() flex-grow 3 flex-shrink 3 /* * Varios relative width of items to each other */ RV-FlexRow__Item--narrower() +RV-Element--modifier() flex-grow 1 flex-shrink 5 RV-FlexRow__Item--narrow() +RV-Element--modifier() flex-grow 2 flex-shrink 4 RV-FlexRow__Item--wide() +RV-Element--modifier() flex-grow 4 flex-shrink 2 RV-FlexRow__Item--wider() +RV-Element--modifier() flex-grow 5 flex-shrink 1 /* * Item has always the given width */ RV-FlexRow__Item--fixedSize(width) +RV-Element--modifier() RV-Sizes--fixedSize(width) /* * Item width relativ to the container */ RV-FlexRow__Item--half() +RV-Element--modifier() flex-grow 0 flex-shrink 0 flex-basis 50% RV-FlexRow__Item--third() +RV-Element--modifier() flex-grow 0 flex-shrink 0 flex-basis (100/3)% RV-FlexRow__Item--quarter() +RV-Element--modifier() flex-grow 0 flex-shrink 0 flex-basis 25% RV-FlexRow__Item--content() +RV-Element--modifier() flex-grow 0 flex-shrink 0 flex-basis max-content /* ########## * Block ########### */ RV-FlexRow() display flex height 100% overflow-y hidden +RV-Block('RV-FlexRow') RV-FlexRow() RV-CSSParameter({ width: 100px localBreakPoint: 500px, mediaBreakPoint: 100vw }) +RV-Element() RV-FlexRow__Item--narrower() RV-FlexRow__Item--narrow() RV-FlexRow__Item--wide() RV-FlexRow__Item--wider() RV-FlexRow__Item--fixedSize(--width) RV-FlexRow__Item--narrower() RV-FlexRow__Item--half() RV-FlexRow__Item--third() RV-FlexRow__Item--quarter() RV-FlexRow__Item--content() RV-FlexRow__Item() RV-FlexRow--breakPoint(--localBreakPoint, --mediaBreakPoint) RV-FlexRow--horizontal() RV-FlexRow--vertical() RV-FlexRow--auto()