Framed Choice: Default

No notes defined.

<div class="sds-framedChoice sds-showCustomIndicatorHover">
    <input name="framedChoiceInput" type="radio" id="framed-radio" class="sds-framedChoice__input sr-only">
    <div class="sds-framedChoice__body" data-scope-wrapper="box" data-scope="flat">

        <div class="sds-framedChoice__content sds-staticGapMd">

            <div class="sds-framedChoice__inputShape d-flex">

                <span class="sds-radioDot " aria-hidden="true"></span>

            </div>

            <div class="sds-framedChoice__media">

                <div class="sds-media -mediaSm">

                    <img src="../../media/spuerkeess-site/components/product/cards/sdsillu-product-card-classic.png" alt="">

                </div>

            </div>

            <div class="flex-grow-1">

                <div class="sds-staticStackXxs">
                    <p class="h4">
                        <label for="framed-radio" class="stretched-link">John Doe</label>
                    </p>
                    <p>
                        <label for="framed-radio" class="stretched-link">Test</label>
                    </p>
                </div>

            </div>

            <div class="sds-aboveClickArea">
                <button type="button" class="sds-infoDot" data-toggle="modal" data-target="#">
                    <span class="sds-icon sds-icon-infocircleborder"></span>
                    <span class="sr-only">Show more info</span>
                </button>
            </div>

        </div>

    </div>

</div>
{% extends "@framed-choice-frame" %}
{% block media %}
	{% render "@media--sm" %}
{% endblock %}
{% block text %}
<div class="{{ namespace }}staticStackXxs">
	<p class="h4">
		<label for="{{ id }}" class="stretched-link">{{ title }}</label>
	</p>
	<p>
		<label for="{{ id }}" class="stretched-link">{{ text }}</label>
	</p>
</div>
{% endblock %}
  • Content:
    /* variables specific to current element */
    
    $element-specific-variables: "";
    
    .#{$namespace}framedChoice {
    
    	/* Save root element context for easy access if nesting is needed */
    
    	$self: &;
    
    	/* properties of current element  + media queries */
    	position: relative;
    	display: flex;
    	flex-direction: column;
    	border-radius: var(--comp-framed-choice-border-radius);
    
    	@supports (container-type: size) {
    		container-type: inline-size;
    		container-name: framed-choice;
    	}
    
    	/* 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 */
    
    	&__input {
    
    		&:checked ~ * {
    
    			@include custom-prop-fallback("border-color","comp-framed-choice-checked-enabled-border-color");
    
    		}
    		
    		&:checked ~ #{$self}__body {
    			z-index: z("low");
    		}
    
    		&:disabled ~ #{$self}__body {
    			cursor: not-allowed;
    			@include custom-prop-fallback("background-color","comp-framed-choice-disabled-background-color");
    		}
    
    		&[disabled] ~ *,
    		&[disabled]:checked ~ * {
    
    			@include custom-prop-fallback("border-color","comp-framed-choice-disabled-border-color");
    
    		}
    
    		@at-root input[type="radio"]#{&} {
    
    			&:checked ~ * {
    
    				#{$self}__inputShape > * {
    
    					@include radioInputChecked();
    
    				}
    
    			}
    
    			&:focus-visible ~ * {
    
    				#{$self}__inputShape > * {
    
    					@include radioInputFocused();
    
    				}
    
    			}
    
    			&[disabled] {
    
    				~ * #{$self}__inputShape > * {
    
    					@include radioInputDisabled();
    
    				}
    
    				&:checked ~ *  {
    
    
    					#{$self}__inputShape > * {
    
    						@include radioInputDisabledChecked();
    
    					}
    
    				}
    
    			}
    
    		}
    
    		@at-root input[type="checkbox"]#{&} {
    
    			&:checked ~ * {
    
    				#{$self}__inputShape > * {
    
    					@include checkboxInputChecked();
    
    				}
    
    			}
    
    			&:focus-visible ~ * {
    
    				#{$self}__inputShape > * {
    
    					@include checkboxFocused();
    
    				}
    
    			}
    
    			&[disabled] {
    
    				~ * #{$self}__inputShape > * {
    
    					@include checkboxInputDisabled();
    
    				}
    
    				&:checked ~ *  {
    
    					#{$self}__inputShape > * {
    
    						@include checkboxInputDisabledChecked();
    
    					}
    
    				}
    
    			}
    
    		}
    
    		&.is-invalid ~ #{$self}__body {
    
    			position: relative;
    			z-index: z("low");
    			@include custom-prop-fallback("background-color", "comp-framed-choice-error-background-color");
    			@include custom-prop-fallback("border-color", "comp-framed-choice-error-border-color");
    
    		}
    
    	}
    
    	// framedChoice__body
    	&__body {
    
    		// follows same logic as parent
    
    		flex-grow: 1;
    		padding: var(--comp-framed-choice-inset-v) var(--comp-framed-choice-inset-h);
    		border: var(--comp-framed-choice-border-width) solid var(--comp-framed-choice-border-color);
    		border-radius: inherit;
    		cursor: pointer;
    
    	}
    
    	&__media {
    
    		display: none;
    
    	}
    
    		@supports (container-type: size) {
    			@container framed-choice (width > 450px) {
    				#{$self}__media {
    					display: block;
    				}
    			}
    		}
    
    	&__content {
    
    		display: flex;
    		align-items: center;
    
    	}
    
    	&__collapseInner {
    
    		@include custom-prop-fallback("padding-top","comp-framed-choice-stack");
    
    	}
    
    
    	/* modifiers */
    
    	// framedChoice -altStyle
    	&.-altStyle {
    
    		// follows same logic as base element
    
    	}
    
    	/* random parent element */
    	/* 
    	*
    	*   Syntax : .randomParentElt & {}
    	*
    	*/
    
    	// @TODO remove once old inputs not in use anymore
    	.invalid-feedback {
    
    		padding-left: 0;
    
    	}
    
    	/* Pseudo Classes */
    
    	&:hover {
    		@media (hover: hover) {
    
    		}
    	}
    
    	&:focus-visible {
    
    	}
    
    	&:active {
    	}
    
    	&:focus,
    	&:active {
    	}
    
    }
  • URL: /components/raw/framed-choice/_framed-choice.scss
  • Filesystem Path: components/token-based/actions-and-inputs/input/framed-choice/_framed-choice.scss
  • Size: 3.6 KB