Skip to content

Commit

Permalink
Merge pull request #5916 from pat270/LPD-45799
Browse files Browse the repository at this point in the history
fix(@clayui/css): LPD-45799 Cadmin c-prefers-focus should output corr…
  • Loading branch information
matuzalemsteles authored Jan 17, 2025
2 parents 6456669 + 346126e commit 66fede5
Show file tree
Hide file tree
Showing 20 changed files with 70 additions and 391 deletions.
6 changes: 6 additions & 0 deletions packages/clay-css/src/scss/atlas/variables/_globals.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ $focus-visible-selector: if(
'&:focus'
) !default;

$c-prefers-focus-selector: if(
$enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

$enable-lexicon-flat-colors: true !default;
$enable-scaling-components: true !default;
$scaling-breakpoint-down: sm !default;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@

@at-root {
&.focus,
#{$focus-visible-selector} {
#{$focus-visible-selector},
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
box-shadow: $cadmin-multi-step-icon-disabled-focus-box-shadow;
}
}
Expand Down Expand Up @@ -272,7 +273,8 @@

@at-root {
&.focus,
#{$focus-visible-selector} {
#{$focus-visible-selector},
#{if($c-prefers-focus-selector, $c-prefers-focus-selector, clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
background-color: $cadmin-multi-step-icon-focus-bg;
box-shadow: $cadmin-multi-step-icon-focus-box-shadow;
color: $cadmin-multi-step-icon-focus-color;
Expand Down
2 changes: 2 additions & 0 deletions packages/clay-css/src/scss/cadmin/variables/_globals.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ $focus-visible-selector: if(
'&:focus'
) !default;

$c-prefers-focus-selector: null !default;

$cadmin-scaling-breakpoint-down: sm !default;

// This enables Clay color functions to get the fallback color of a CSS Custom Property, convert it to the correct Sass type color, then process it using the corresponding Sass color function. The Clay color function will return a CSS color value. Set this variable to `false` if you want the Clay color function to return the CSS Custom Property without any modifications.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ $cadmin-multi-step-icon-hover-bg: $cadmin-multi-step-icon-bg !default;
$cadmin-multi-step-icon-hover-color: $cadmin-multi-step-icon-color !default;
$cadmin-multi-step-icon-hover-text-decoration: none !default;

$cadmin-multi-step-icon-focus-bg: $cadmin-multi-step-icon-hover-bg !default;
$cadmin-multi-step-icon-focus-bg: null !default;
$cadmin-multi-step-icon-focus-box-shadow: $cadmin-component-focus-box-shadow !default;
$cadmin-multi-step-icon-focus-color: $cadmin-multi-step-icon-hover-color !default;
$cadmin-multi-step-icon-focus-color: null !default;
$cadmin-multi-step-icon-focus-outline: 0 !default;
$cadmin-multi-step-icon-focus-text-decoration: $cadmin-multi-step-icon-hover-text-decoration !default;

Expand Down
6 changes: 4 additions & 2 deletions packages/clay-css/src/scss/components/_multi-step-nav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,8 @@

@at-root {
&.focus,
#{$focus-visible-selector} {
#{$focus-visible-selector},
.c-prefers-focus &:focus {
box-shadow: $multi-step-icon-disabled-focus-box-shadow;
}
}
Expand Down Expand Up @@ -282,7 +283,8 @@

@at-root {
&.focus,
#{$focus-visible-selector} {
#{$focus-visible-selector},
.c-prefers-focus &:focus {
background-color: $multi-step-icon-focus-bg;
box-shadow: $multi-step-icon-focus-box-shadow;
color: $multi-step-icon-focus-color;
Expand Down
10 changes: 8 additions & 2 deletions packages/clay-css/src/scss/functions/_global-functions.scss
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,17 @@
/// @param {String} $selector - The full selector

@function clay-insert-before($location, $insert, $selector: &) {
@return clay-str-replace(
'#{$selector}',
$newSelector: clay-str-replace(
'#{&}',
'#{$location}',
'#{$insert}#{$location}'
);

@if ($selector == '&:focus') {
@return '#{$newSelector}:focus';
}

@return $newSelector;
}

/// A helper function for displaying warning messages for required variables.
Expand Down
33 changes: 4 additions & 29 deletions packages/clay-css/src/scss/mixins/_buttons.scss
Original file line number Diff line number Diff line change
Expand Up @@ -250,31 +250,6 @@

$breakpoint-down: map-get($map, breakpoint-down);

$_enable-focus-visible: if(
variable-exists(enable-focus-visible),
$enable-focus-visible,
if(
variable-exists(cadmin-enable-focus-visible),
$cadmin-enable-focus-visible,
true
)
);

$_c-prefers-focus-selector: if(
$_enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

@if (variable-exists(cadmin-enable-focus-visible)) and
($_enable-focus-visible)
{
$_c-prefers-focus-selector: clay-insert-before(
'.cadmin',
'.c-prefers-focus '
);
}

$base: map-merge(
$map,
(
Expand Down Expand Up @@ -732,7 +707,7 @@
@at-root {
&.focus,
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($focus);

&::before {
Expand Down Expand Up @@ -790,7 +765,7 @@

@at-root {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($active-focus);

&::before {
Expand Down Expand Up @@ -837,7 +812,7 @@

@at-root {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css(
map-deep-get($map, active-class, focus)
);
Expand Down Expand Up @@ -881,7 +856,7 @@

@at-root {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css(map-get($disabled, focus));

&::before {
Expand Down
27 changes: 1 addition & 26 deletions packages/clay-css/src/scss/mixins/_cards.scss
Original file line number Diff line number Diff line change
Expand Up @@ -297,31 +297,6 @@
@if (type-of($map) == 'map') {
$enabled: setter(map-get($map, enabled), true);

$_enable-focus-visible: if(
variable-exists(enable-focus-visible),
$enable-focus-visible,
if(
variable-exists(cadmin-enable-focus-visible),
$cadmin-enable-focus-visible,
true
)
);

$_c-prefers-focus-selector: if(
$_enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

@if (variable-exists(cadmin-enable-focus-visible)) and
($_enable-focus-visible)
{
$_c-prefers-focus-selector: clay-insert-before(
'.cadmin',
'.c-prefers-focus '
);
}

$base: map-merge(
$map,
(
Expand Down Expand Up @@ -736,7 +711,7 @@
@at-root {
&.focus,
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($focus);

&::after {
Expand Down
29 changes: 2 additions & 27 deletions packages/clay-css/src/scss/mixins/_close.scss
Original file line number Diff line number Diff line change
Expand Up @@ -67,31 +67,6 @@
@if (type-of($map) == 'map') {
$enabled: setter(map-get($map, enabled), true);

$_enable-focus-visible: if(
variable-exists(enable-focus-visible),
$enable-focus-visible,
if(
variable-exists(cadmin-enable-focus-visible),
$cadmin-enable-focus-visible,
true
)
);

$_c-prefers-focus-selector: if(
$_enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

@if (variable-exists(cadmin-enable-focus-visible)) and
($_enable-focus-visible)
{
$_c-prefers-focus-selector: clay-insert-before(
'.cadmin',
'.c-prefers-focus '
);
}

$base: map-merge(
$map,
(
Expand Down Expand Up @@ -382,7 +357,7 @@
@at-root {
button#{&} {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($btn-focus);
}
}
Expand All @@ -391,7 +366,7 @@
@at-root {
&.focus,
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($focus);
}
}
Expand Down
31 changes: 3 additions & 28 deletions packages/clay-css/src/scss/mixins/_custom-forms.scss
Original file line number Diff line number Diff line change
Expand Up @@ -103,31 +103,6 @@
@if (type-of($map) == 'map') {
$enabled: setter(map-get($map, enabled), true);

$_enable-focus-visible: if(
variable-exists(enable-focus-visible),
$enable-focus-visible,
if(
variable-exists(cadmin-enable-focus-visible),
$cadmin-enable-focus-visible,
true
)
);

$_c-prefers-focus-selector: if(
$_enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

@if (variable-exists(cadmin-enable-focus-visible)) and
($_enable-focus-visible)
{
$_c-prefers-focus-selector: clay-insert-before(
'.cadmin',
'.c-prefers-focus '
);
}

@if ($enabled) {
@include clay-css($map);

Expand Down Expand Up @@ -167,7 +142,7 @@

@at-root {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
~ .custom-control-label::before {
@include clay-css(
map-deep-get(
Expand Down Expand Up @@ -427,7 +402,7 @@
@at-root {
&:checked {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
~ .custom-control-label::before {
@include clay-css(
map-deep-get(
Expand Down Expand Up @@ -657,7 +632,7 @@
@at-root {
&:indeterminate {
#{$focus-visible-selector},
#{$_c-prefers-focus-selector} {
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
~ .custom-control-label::before {
@include clay-css(
map-deep-get(
Expand Down
28 changes: 4 additions & 24 deletions packages/clay-css/src/scss/mixins/_dropdown-menu.scss
Original file line number Diff line number Diff line change
Expand Up @@ -364,26 +364,6 @@
setter(map-get($map, hover-c-kbd-inline), ())
);

$_enable-focus-visible: if(
variable-exists(enable-focus-visible),
$enable-focus-visible,
if(
variable-exists(cadmin-enable-focus-visible),
$cadmin-enable-focus-visible,
true
)
);
$_focus-selector: if(
$_enable-focus-visible,
'&:focus-visible',
'&:focus'
);
$_prefers-focus-selector: if(
$_enable-focus-visible,
'.c-prefers-focus &:focus',
''
);

$focus: setter(map-get($map, focus), ());
$focus: map-deep-merge(
$focus,
Expand Down Expand Up @@ -656,8 +636,8 @@

@at-root {
&.focus,
#{$_focus-selector},
#{$_prefers-focus-selector} {
#{$focus-visible-selector},
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
@include clay-css($focus);

&::before {
Expand Down Expand Up @@ -738,8 +718,8 @@
@at-root {
&.btn:not([disabled]):not(.disabled):active,
&.btn:not([disabled]):not(.disabled).active {
#{$_focus-selector},
#{$_prefers-focus-selector} {
#{$focus-visible-selector},
#{if($c-prefers-focus-selector,$c-prefers-focus-selector,clay-insert-before('.cadmin', '.c-prefers-focus ', '&:focus'))} {
box-shadow: map-get($focus, box-shadow);
}
}
Expand Down
Loading

0 comments on commit 66fede5

Please sign in to comment.