Sitfin Block: Investissement No Account

Expanded and collapsed states

sds-sitfinBlock__collapseTrigger's aria-expanded attribute set to false if collapsed, to true if shown

sds-sitfinBlock__collapse gets a "show" class when shown

<div class="sds-sitfinBlock -hasAction -noAccount">
    <div class="sds-sitfinBlock__header">
        <div class="sds-sitfinBlock__heading d-flex align-items-center">
            <button type="button" class="sds-btn -iconBtn -btnSecondary -btnSmall sds-sitfinBlock__collapseTrigger" data-toggle="collapse" data-target="#sitfin-collapse-3-1" aria-expanded="true">

                <span class="sds-icon sds-icon-plus"></span>

            </button>
            <div class="h3">Investissement</div>
        </div>
    </div>
    <div class="sds-sitfinBlock__collapse collapse show" id="sitfin-collapse-3-1">
        <div class="sds-sitfinBlock__collapseInner">
            <div class="sds-sitfinBlock__row sds-sitfinBlock__btnRow">
                <button type="button" class="sds-btn -btnSecondary">

                    <span class="sds-icon sds-icon-plus"></span>

                    <span class="sds-btn__text">Ouvrir un portefeuille-titres</span>

                </button>
                <div class="sds-sitfinBlock__overlapAvatars">

                    <a href="" class="sds-avatar centeredBgi">

                        <img class="img-fluid" src="../../media/snet/components/sitfin/n26.png" alt="">

                    </a>

                    <a href="" class="sds-avatar centeredBgi">

                        <img class="img-fluid" src="../../media/snet/components/sitfin/revolut.png" alt="">

                    </a>

                    <a href="" class="sds-avatar centeredBgi">

                        <img class="img-fluid" src="../../media/snet/components/sitfin/post.png" alt="">

                    </a>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="{{ namespace }}sitfinBlock{% for mod in modifiers %} {{ mod }}{% endfor %}{% for mod in classes %} {{ mod }}{% endfor %}">
	<div class="{{ namespace }}sitfinBlock__header">
		<div class="{{ namespace }}sitfinBlock__heading d-flex align-items-center">
			{% render "@icon-btn-secondary--small",{
				classes: [namespace+"sitfinBlock__collapseTrigger"],
				icon: "icon-plus",
				attrs: {
					"data-toggle": "collapse",
					"data-target": "#"+sitfinCollapseID,
					"aria-expanded": expanded
				}
			},true %}
			<div class="h3">{{ title }}</div>
		</div>
	</div>
	<div class="{{ namespace }}sitfinBlock__collapse collapse{% if expanded === true %} show{% endif %}" id="{{ sitfinCollapseID }}">
		<div class="{{ namespace }}sitfinBlock__collapseInner">
			<div class="{{ namespace }}sitfinBlock__row {{ namespace }}sitfinBlock__btnRow">
				{% render "@btn-secondary--icon-left",{
					icon: "icon-plus",
					text: "Ouvrir un portefeuille-titres"
				},true %}
				<div class="{{ namespace }}sitfinBlock__overlapAvatars">
					{% render "@avatar--image",{
						eltType: "a",
						img: "/snet/components/sitfin/n26.png"
					},true %}
					{% render "@avatar--image",{
						eltType: "a",
						img: "/snet/components/sitfin/revolut.png"
					},true %}
					{% render "@avatar--image",{
						eltType: "a",
						img: "/snet/components/sitfin/post.png"
					},true %}
				</div>
			</div>
		</div>
	</div>
</div>
  • Content:
    @use "sass:math";
    /* variables specific to current element */
    
    $sitfin-block-header-padding: map-deep-get($token-spacer-inline-map, "md");
    $sitfin-collapse-inner-padding: map-deep-get($token-spacer-inline-map, "md");
    $sitfin-row-padding-left: map-deep-get($token-sizes-unit-map, "56");
    $sitfin-row-margin-top: map-deep-get($token-spacer-stack-max-map, "md");
    $sitfin-row-card-horizontal-spacing-narrow-key: "md";
    $sitfin-row-card-horizontal-spacing-wide-key: "lg";
    $sitfin-row-card-horizontal-spacing-narrow: map-deep-get($token-spacer-inline-map, $sitfin-row-card-horizontal-spacing-narrow-key);
    $sitfin-row-card-horizontal-spacing-wide: map-deep-get($token-spacer-inline-map, $sitfin-row-card-horizontal-spacing-wide-key);
    $sitfin-row-left-offset: (math.div(map-deep-get($token-icon-btn-size-map, "smaller", "width"), 2));
    $sitfin-block-avatar-margin-right: map-deep-get($token-spacer-inline-map, "lg");
    $sitfin-btn-row-margin-top: map-deep-get($token-spacer-stack-max-map, "lg");
    
    .#{$namespace}sitfinBlock {
    
    	/* Save root element context for easy access if nesting is needed */
    
    	$self: &;
    
    	--comp-sitfin-block-card-gap: 16px;
    
    	@include media-breakpoint-up("xl") {
    
    		--comp-sitfin-block-card-gap: 24px;
    
    	}
    
    	@media screen and (min-width: map-get($tweakpoint-map, "tablet")) {
    
    		--comp-sitfin-block-card-gap: 16px;
    
    	}
    
    	@media screen and (min-width: 1320px) {
    
    		--comp-sitfin-block-card-gap: 24px;
    
    	}
    
    	/* properties of current element  + media queries */
    
    	background-color: map-deep-get($token-color-grayscale-map, "0");
    	border-radius: map-deep-get($token-radius-map, "16");
    
    
    	/* Pseudo Elements */
    
    	&::before {
    	}
    
    	&::after {
    	}
    
    	/*
    	Include elements that are linked to the current element but have to reside at the root level of the stylesheet
    	(e.g: keyframes)
    	*/
    	@at-root {
    	}
    
    
    	/* children - write selector in full in comments in order to facilitate search */
    
    	// sitfinBlock__header
    	&__header {
    
    		// follows same logic as parent
    
    		display: flex;
    		align-items: center;
    		//justify-content: space-between;
    		@include spacer-component-inline("md");
    		padding: $sitfin-block-header-padding;
    		position: relative;
    		z-index: z("zero");
    
    	}
    
    	&__heading {
    
    		flex-shrink: 0;
    		@include make-col(4);
    
    	}
    
    	&__meta {
    
    		@include custom-prop-fallback("color", "sys-color-text-primary-muted");
    		margin-right: auto;
    
    	}
    
    	&__collapseTrigger {
    
    		margin-right: map-deep-get($token-spacer-inline-map, "lg");
    
    		&::before {
    
    			content: "";
    			position: absolute;
    			z-index: z("negative");
    			top: 50%;
    			bottom: 0;
    			left: $sitfin-row-left-offset*2;
    			transform: translateX(-50%) scaleY(0);
    			width: $border-width*2;
    			background-color: $border-color;
    			transition: transform 0.05s linear;
    			transition-delay: $transition-collapse-duration;
    			transform-origin: top;
    
    		}
    
    		&[aria-expanded="true"] {
    
    			&::before {
    
    				transition-delay: 0s;
    				transform: translateX(-50%) scaleY(1);
    
    			}
    
    			[class*="icon"] {
    
    				&::before {
    
    					content: map-deep-get($token-icon-map, "minus")
    
    				}
    
    			}
    
    		}
    
    	}
    
    	&__row,
    	&__rowInner {
    		display: flex;
    	}
    
    	&__row,
    	&__btnRow {
    		padding-left: $sitfin-row-padding-left;
    	}
    
    	&__row {
    		
    		& + & {
    
    			margin-top: $sitfin-row-margin-top;
    
    		}
    
    		& + #{$self}__btnRow {
    
    			margin-top: $sitfin-btn-row-margin-top;
    
    		}
    
    		&:first-of-type {
    
    			#{$self}__rowAvatar::before {
    
    				top: -($sitfin-block-header-padding);
    
    			}
    
    		}
    
    		&:last-of-type {
    
    			#{$self}__rowAvatar::before {
    
    				top: -($sitfin-block-header-padding);
    				bottom: 50%;
    
    			}
    
    			#{$self}__rowAvatar::after {
    
    				content: none;
    
    			}
    
    		}
    
    		#{$self}__rowInner > #{$self}__rowItem:only-of-type,
    		#{$self}__rowInner > #{$self}__card:only-of-type {
    
    			[class*="dotAfter"] {
    				display: none;
    			}
    
    		}
    
    	}
    
    	&__btnRow#{$self}__btnRow {
    
    		position: relative;
    
    		&::before,
    		&::after {
    			content: "";
    			position: absolute;
    			left: $sitfin-row-left-offset;
    		}
    
    		&::before {
    
    			background-color: $border-color;
    			top: -($sitfin-btn-row-margin-top);
    			bottom: 50%;
    			width: $border-width*2;
    			transform: translateX(-50%);
    
    		}
    
    		&::after {
    
    			background-color: $border-color;
    			top: 50%;
    			width: ($sitfin-row-padding-left - $sitfin-row-left-offset);
    			height: $border-width*2;
    			transform: translateY(-50%);
    		}
    
    	}
    
    	&__rowInner {
    
    		display: inline-flex;
    		align-items: center;
    		position: relative;
    		width: 100%;
    
    		&::before {
    
    			content: "";
    			background-color: $border-color;
    			position: absolute;
    			top: 50%;
    			right: 100%;
    			transform: translateY(-50%);
    			width: ($sitfin-row-padding-left - $sitfin-row-left-offset);
    			height: $border-width*2;
    
    		}
    
    		#{$self}__rowItem,
    		#{$self}__card {
    			[class*="dot"] {
    				display: block;
    			}
    		}
    
    		#{$self}__cardWrapper:last-of-type #{$self}__card {
    
    			[class*="dotAfter"] {
    				display: none;
    			}
    
    		}
    
    		&.-stacked {
    
    			#{$self}__rowMoreCards {
    
    				#{$self}__cardWrapper {
    
    					&.-isSelected {
    
    						&.-stacked1 {
    							> * {
    								transform: translateX(calc(-#{$sitfin-card-width-global} - var(--comp-sitfin-block-card-gap)));
    							}
    						}
    
    						&.-stacked2 {
    							> * {
    								transform: translateX(calc(-#{$sitfin-card-width-global} - (var(--comp-sitfin-block-card-gap) * 4.5)));
    							}
    
    						}
    
    						&.-stacked3 {
    
    							> * {
    								transform: translateX(calc(-#{$sitfin-card-width-global} - (var(--comp-sitfin-block-card-gap) * 8)));
    							}
    
    						}
    
    					}
    
    					&:not([class*="stacked"]) {
    
    						.-stacked1 {
    							transform: translateX(calc(#{$sitfin-card-width-global} + var(--comp-sitfin-block-card-gap)));
    						}
    
    						.-stacked2 {
    							transform: translateX(calc(#{$sitfin-card-width-global} + (var(--comp-sitfin-block-card-gap) * 4.5)));
    						}
    
    						.-stacked3 {
    							transform: translateX(calc(#{$sitfin-card-width-global} + (var(--comp-sitfin-block-card-gap) * 8)));
    						}
    
    					}
    
    					&.-stacked2 {
    
    						margin-left: calc(#{$sitfin-card-width-global}*-1 + ( var(--comp-sitfin-block-card-gap) * 2.5));
    
    					}
    
    					&.-stacked3 {
    
    						margin-left: calc(#{$sitfin-card-width-global}*-1 + ( var(--comp-sitfin-block-card-gap) * 2.5));
    
    					}
    
    				}
    
    				#{$self}__card {
    
    					position: relative;
    					z-index: z("zero");
    					height: 100%;
    					transition: transform 0.15s linear;
    
    					&.-stacked1 {
    
    						z-index: z("zero");
    
    						&::before {
    
    							right: 100%;
    							left: auto;
    							width: var(--comp-sitfin-block-card-gap);
    							height: $border-width*2;
    							transform: translate(0, -50%);
    
    						}
    
    					}
    
    					&.-stacked2,
    					&.-stacked3 {
    
    						&::before,
    						&::after {
    
    							content: none;
    
    						}
    
    						[class*="dot"] {
    							display: none;
    						}
    
    					}
    
    					&.-stacked2 {
    						z-index: z("low");
    					}
    					&.-stacked3 {
    						z-index: z("high");
    					}
    
    				}
    
    			}
    
    			&::after {
    
    				content: "";
    				pointer-events: none;
    				position: absolute;
    				z-index: z("high");
    				top: -(math.div($sitfin-collapse-inner-padding, 2));
    				bottom:-(math.div($sitfin-collapse-inner-padding, 2));
    				right: -($sitfin-collapse-inner-padding);
    				width: 5rem;
    				@include gradient-directional(rgba(map-deep-get($token-color-grayscale-map, "0",),0.05), map-deep-get($token-color-grayscale-map, "0",), 0%, 30%, 90deg, true);
    				background-color: transparent;
    			}
    
    		}
    
    	}
    
    	&__rowMoreCards {
    
    		position: relative;
    		display: flex;
    		align-items: center;
    		margin-left: var(--comp-sitfin-block-card-gap);
    		gap: var(--comp-sitfin-block-card-gap);
    
    		#{$self}__rowItem {
    
    			display: flex;
    
    			&:last-of-type {
    
    				[class*="dotAfter"] {
    					display: none;
    				}
    
    			}
    
    		}
    
    		#{$self}__rowItem,
    		#{$self}__card {
    
    			align-items: center;
    
    			&::before {
    
    				content: "";
    				position: absolute;
    				z-index: z("zero");
    				top: 50%;
    				right: 100%;
    				left: auto;
    				transform: translate(0, -50%);
    				width: var(--comp-sitfin-block-card-gap);
    				height: $border-width*2;
    				background-color: $border-color;
    
    			}
    
    		}
    
    	}
    
    	&__seeMore {
    
    		position: sticky;
    		z-index: z("high") + 1;
    		right: var(--comp-sitfin-block-card-gap);
    		margin-left: var(--comp-sitfin-block-card-gap);
    
    	}
    	
    	&__rowAvatar {
    
    		display: flex;
    		align-items: center;
    		position: relative;
    		z-index: z("low");
    		margin-left: -($sitfin-row-padding-left);
    		margin-right: $sitfin-block-avatar-margin-right;
    
    		&::before,
    		&::after {
    			content: "";
    			background-color: $border-color;
    			position: absolute;
    			z-index: z("negative");
    			left: $sitfin-row-left-offset;
    			width: $border-width*2;
    			transform: translateX(-50%);
    		}
    
    		&::before {
    			top: -($sitfin-row-margin-top);
    			bottom: 50%;
    		}
    
    		&::after {
    
    			top: 50%;
    			bottom: 0;
    
    		}
    		
    	}
    	
    	&__collapseInner {
    
    		padding: $sitfin-block-header-padding $sitfin-collapse-inner-padding $sitfin-collapse-inner-padding;
    
    	}
    
    	&__overlapAvatars {
    
    		display: inline-flex;
    		flex-wrap: nowrap;
    		margin-left: map-deep-get($token-spacer-inline-map, "xl");
    		position: relative;
    		z-index: z("zero");
    		transform-style: preserve-3d; /*  parent styles for overlapping elements */
    
    
    		> * {
    
    			position: relative;
    			margin-right: -(map-deep-get($token-spacer-inline-map, "sm"));
    			transition: transform 0.15s linear;
    			box-shadow: map-deep-get($token-shadow-map, "active");
    			transform: rotateY(-1deg) skewY(1deg);
    
    			& ~ * {
    
    				/* style for overlapping "next" sibling elements lower than previous */
    				z-index: z("negative");
    
    			}
    
    			&:hover {
    
    				z-index: z("low");
    				transform: translateZ(1px) scale(1.1) rotateY(-1deg) skewY(1deg);
    
    			}
    
    		}
    
    		&.-borderItems {
    
    			> * {
    
    				background-color: map-deep-get($token-color-grayscale-map, "0");
    				border: $border-width solid $border-color;
    
    			}
    
    		}
    
    	}
    
    	&__rowItem {
    		position: relative;
    	}
    
    	&__rowItemDot {
    
    		position: absolute;
    		top: 50%;
    		z-index: z("low");
    
    		&.-dotBefore {
    
    			right: 100%;
    			transform: translate(100%,-50%);
    
    		}
    
    		&.-dotAfter {
    
    			left: 100%;
    			transform: translate(-100%,-50%);
    
    		}
    
    	}
    
    
    	/* modifiers */
    
    	// sitfinBlock -hasAction
    	&.-hasAction {
    
    		// follows same logic as base element
    
    
    		#{$self}__row:nth-last-of-type(2) {
    
    			#{$self}__rowAvatar::after {
    
    				border-left: $border-width*2 dashed $border-color;
    				background-color: transparent;
    
    			}
    
    		}
    
    		#{$self}__btnRow {
    
    			&::before,
    			&::after {
    				content: "";
    				background-color: transparent;
    			}
    
    			&::before {
    				border-left: $border-width*2 dashed $border-color;
    			}
    
    			&::after {
    				border-top: $border-width*2 dashed $border-color;
    			}
    
    		}
    
    	}
    
    	&.-noAccount {
    
    		#{$self}__collapseTrigger {
    
    			&::before {
    
    				border-left: $border-width*2 dashed $border-color;
    				background-color: transparent;
    
    			}
    
    		}
    
    		#{$self}__btnRow#{$self}__btnRow {
    
    			&::before {
    
    				top: -(math.div($sitfin-btn-row-margin-top, 2));
    
    			}
    
    		}
    
    
    	}
    
    	/* random parent element */
    	/* 
    	*
    	*   Syntax : .randomParentElt & {}
    	*
    	*/
    
    	/* Pseudo Classes */
    
    	&:hover {
    		@media (hover: hover) {
    
    		}
    	}
    
    	&:focus {
    	}
    
    	&:active {
    	}
    
    	&:focus,
    	&:active {
    	}
    
    }
  • URL: /components/raw/snet-sitfin-block/_sitfin-block.scss
  • Filesystem Path: components/snet/organisms/sitfin-block/_sitfin-block.scss
  • Size: 11 KB