UNPKG

@govbr-ds/core

Version:

Padrão Digital de Governo

1 lines 5.15 kB
{"version":3,"file":"components/radio/radio.css","mappings":"AAKA;ECOE;EACA;EACA;EAGA;ADZF;ACcE;EACE;ADZJ;ACeE;EACE;EACA;ADbJ;ACeI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADbN;ACeM;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADbR;ACgBM;EACE;ADdR;ACgBQ;EACE;ADdV;ACsBE;EACE;ADpBJ;AC2BM;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADzBR;AC6BQ;EACE;AD3BV;ACoEQ;EACE;ADlEV;ACiEQ;EACE;AD/DV;AC8EM;EACE;EACA;AD5ER;AC+EM;EACE;EACA;AD7ER;ACgFM;EACE;EACA;EACA;AD9ER;ACmBM;EACE;ADjBR;ACuBM;;;ECxEJ;EACA;EACA;AFsDF;ACuBM;EACE;ADrBR;AC0EI;;;EAEE;ADvEN,C","sources":["webpack://core/./src/components/radio/_radio.scss","webpack://core/./src/components/radio/_mixins.scss","webpack://core/./src/partial/scss/mixins/_focus.scss"],"sourcesContent":["@use \"sass:math\";\n @import \"../../partial/scss/base\";\n \n@import \"mixins\";\n\n.#{$prefix}radio {\n @include radio-configs;\n}\n","@mixin radio-configs {\n @include radio-tokens;\n @include radio-default;\n @include radio-label;\n @include radio-checked;\n @include radio-colors;\n @include radio-sizes;\n @include radio-states;\n @include radio-dark-mode;\n}\n\n@mixin radio-tokens {\n --radio-size: 24px;\n --radio-bullet-size: 16px;\n --radio-bullet-position: calc((var(--radio-size) - var(--radio-bullet-size)) * 0.5);\n}\n@mixin radio-default {\n display: block;\n\n & + & {\n margin-top: var(--spacing-scale-base);\n }\n\n input {\n opacity: 0;\n position: absolute;\n\n + label {\n cursor: pointer;\n display: inline-block;\n margin-bottom: 0; // zerar margem padrão de labels\n min-height: var(--radio-size);\n min-width: var(--radio-size);\n padding-left: calc(var(--spacing-scale-base) + var(--radio-size));\n position: relative;\n\n &::before {\n background: var(--background);\n border: 1px solid var(--border-color);\n border-radius: 50%;\n content: \"\";\n height: var(--radio-size);\n left: 0;\n position: absolute;\n top: -1px;\n width: var(--radio-size);\n }\n\n &:empty {\n padding: 0;\n\n &::before {\n top: 0;\n }\n }\n }\n }\n}\n\n@mixin radio-label {\n label {\n font-weight: var(--font-weight-medium);\n }\n}\n\n@mixin radio-checked {\n input {\n &:checked + label {\n &::after {\n background: var(--selected);\n border: 7px solid var(--selected);\n border-radius: 50%;\n content: \"\";\n height: var(--radio-bullet-size);\n left: var(--radio-bullet-position);\n position: absolute;\n right: 0;\n top: calc(var(--radio-bullet-position) - 1px);\n width: var(--radio-bullet-size);\n }\n\n &:empty {\n &::after {\n top: var(--radio-bullet-position);\n }\n }\n }\n }\n}\n\n@mixin radio-states {\n input {\n // Inválid\n &:invalid {\n + label::before {\n border-color: var(--danger);\n }\n }\n //Focus\n &:focus-visible,\n &.focus-visible {\n &:checked + label::before,\n + label::before {\n @include focus-soft;\n }\n }\n //hover\n &:hover:not(:disabled) {\n + label::before {\n background-image: linear-gradient(\n rgba(var(--interactive-rgb), var(--hover)),\n rgba(var(--interactive-rgb), var(--hover))\n );\n }\n }\n }\n}\n\n@mixin radio-colors {\n @each $state, $color in (valid, success), (invalid, danger) {\n &.is-#{$state},\n &.#{$state},\n &[#{$state}] {\n input {\n + label::before {\n border-color: var(--#{$color});\n }\n }\n }\n }\n}\n\n// TODO: Remover na próxima versão\n@mixin radio-sizes {\n // Versão pequena\n &.is-small,\n &.small,\n &[small] {\n input {\n // Texto\n + label {\n line-height: var(--spacing-scale-2xh);\n min-height: var(--spacing-scale-2xh);\n }\n // Caixa\n + label::before {\n height: var(--spacing-scale-2xh);\n width: var(--spacing-scale-2xh);\n }\n // Checado\n &:checked + label::after {\n border-width: 4px;\n height: 10px;\n width: 10px;\n }\n }\n }\n}\n\n@mixin radio-dark-mode {\n &.inverted,\n &.dark-mode {\n &,\n label {\n color: var(--color-dark);\n }\n }\n}\n","/// Aplica foco: feedback ao navegar por teclado no elemento\n/// @example scss - Uso prático\n/// a {\n/// @include focus;\n/// }\n@mixin focus {\n &:focus {\n outline: none;\n }\n\n &.focus-visible,\n &:focus-visible {\n outline-color: var(--focus);\n outline-offset: var(--focus-offset);\n outline-style: var(--focus-style);\n outline-width: var(--focus-width);\n }\n}\n\n/// Aplica foco tênue\n/// @example scss - Uso prático\n/// input {\n/// &:focus,\n/// &:focus-visible,\n/// &.focus-visible {\n/// @include focus-soft;\n/// }\n/// }\n@mixin focus-soft {\n border-color: var(--focus) !important;\n box-shadow: 0 0 0 var(--surface-width-md) var(--focus);\n outline: none;\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""}