/* variables specific to current element */ $circle-dimensions: $circle-dimensions-global; $circle-dimensions-big: $circle-dimensions-big-global; .#{$namespace}circle { /* Save root element context for easy access if nesting is needed */ $self: &; /* properties of current element + media queries */ width: $circle-dimensions; height: $circle-dimensions; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: map-deep-get($token-radius-map, "circle"); @include custom-prop-fallback("background-color", "sys-color-background-primary-30"); @include icon-base; /* 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 { @keyframes dot-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } } /* children - write selector in full in comments in order to facilitate search */ // circle__childElement &__childElement { // follows same logic as parent } /* modifiers */ &.-radio { // follows same logic as base element } &.-recurrent { &::before { content: map-deep-get($token-icon-map, "reload"); } } &.-finance { &::before { content: map-deep-get($token-icon-map, "instrument"); } } &.-plus { &::before { content: map-deep-get($token-icon-map, "plus"); } } &.-minus { &::before { content: map-deep-get($token-icon-map, "minus"); } } &.-valid, &.-disabled { @extend %validation-circle; } &.-valid { @extend %valid-circle; &::before { content: map-deep-get($token-icon-map, "check"); } } &.-disabled { @extend %disabled-circle; &::before { content: map-deep-get($token-icon-map, "cross"); } } &.-loading { @include custom-prop-fallback("background-color", "sys-color-elevation-surface-flat"); border: $border-width*2 solid; @include custom-prop-fallback("border-color", "sys-color-border-secondary-strong"); border-left-color: transparent; animation: dot-spin 1s linear infinite; } &.-big { width: $circle-dimensions-big; height: $circle-dimensions-big; } /* random parent element */ /* * * Syntax : .randomParentElt & {} * */ /* Pseudo Classes */ &:hover { @media (hover: hover) { } } &:focus { } &:active { } &:focus, &:active { } }