228 lines
5.0 KiB
SCSS
228 lines
5.0 KiB
SCSS
@use '../../styles/tools';
|
|
@use './variables' as *;
|
|
|
|
@include tools.layer('components') {
|
|
.v-hotkey {
|
|
align-items: center;
|
|
display: inline-flex;
|
|
gap: $hotkey-gap;
|
|
vertical-align: middle;
|
|
line-height: $hotkey-line-height;
|
|
|
|
&--disabled {
|
|
opacity: $hotkey-disabled-opacity;
|
|
}
|
|
|
|
&--inline {
|
|
max-height: 1lh;
|
|
vertical-align: baseline;
|
|
font-size: $hotkey-inline-font-size;
|
|
line-height: inherit;
|
|
}
|
|
|
|
&__prefix {
|
|
opacity: $hotkey-prefix-suffix-opacity;
|
|
font-weight: $hotkey-prefix-suffix-font-weight;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
&__suffix {
|
|
opacity: $hotkey-prefix-suffix-opacity;
|
|
font-weight: $hotkey-prefix-suffix-font-weight;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
// Contained variant
|
|
&--contained {
|
|
.v-hotkey__contained-wrapper {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: $hotkey-combination-gap;
|
|
padding: $hotkey-contained-padding;
|
|
box-sizing: border-box;
|
|
background: unset;
|
|
box-shadow: unset;
|
|
min-height: 1em;
|
|
font-size: $hotkey-font-size;
|
|
line-height: $hotkey-line-height;
|
|
.v-hotkey__prefix, .v-hotkey__suffix {
|
|
opacity: $hotkey-prefix-suffix-contained-opacity;
|
|
}
|
|
.v-hotkey__prefix {
|
|
margin-right: $hotkey-contained-prefix-margin-right;
|
|
}
|
|
.v-hotkey__suffix {
|
|
margin-left: $hotkey-contained-suffix-margin-left;
|
|
}
|
|
}
|
|
|
|
.v-hotkey__divider {
|
|
opacity: $hotkey-divider-opacity;
|
|
font-size: inherit;
|
|
}
|
|
|
|
.v-hotkey__combination {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: $hotkey-combination-gap;
|
|
}
|
|
|
|
&.v-hotkey--inline .v-hotkey__contained-wrapper.v-kbd {
|
|
align-self: baseline;
|
|
align-items: baseline;
|
|
font-size: $hotkey-inline-font-size;
|
|
line-height: inherit;
|
|
padding: $hotkey-inline-padding;
|
|
gap: $hotkey-combination-gap;
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
}
|
|
|
|
&.v-hotkey--inline .v-hotkey__divider {
|
|
font-size: $hotkey-inline-divider-font-size;
|
|
align-self: baseline;
|
|
}
|
|
|
|
&.v-hotkey--inline .v-hotkey__combination {
|
|
gap: $hotkey-combination-gap;
|
|
align-items: baseline;
|
|
}
|
|
}
|
|
|
|
&__key {
|
|
&.v-kbd {
|
|
min-height: unset;
|
|
font-size: $hotkey-font-size;
|
|
line-height: $hotkey-line-height;
|
|
padding: $hotkey-padding;
|
|
min-width: $hotkey-min-width;
|
|
@include tools.variant($hotkey-variants...);
|
|
}
|
|
|
|
&-symbol.v-kbd {
|
|
line-height: normal;
|
|
font-size: 1em;
|
|
}
|
|
|
|
&-icon .v-icon {
|
|
min-width: unset;
|
|
|
|
&:has(svg) {
|
|
max-width: $hotkey-icon-size;
|
|
}
|
|
&:not(:has(svg)) {
|
|
font-size: $hotkey-icon-size;
|
|
line-height: inherit;
|
|
height: inherit;
|
|
}
|
|
}
|
|
|
|
&--nested {
|
|
background: none;
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
font: inherit;
|
|
color: inherit;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-width: auto;
|
|
min-height: auto;
|
|
align-self: baseline;
|
|
|
|
&.v-hotkey__key-icon {
|
|
align-self: center;
|
|
}
|
|
}
|
|
}
|
|
|
|
&__divider {
|
|
align-items: center;
|
|
display: inline-flex;
|
|
opacity: $hotkey-divider-opacity;
|
|
font-size: $hotkey-divider-font-size;
|
|
}
|
|
|
|
&__combination {
|
|
display: flex;
|
|
gap: $hotkey-combination-gap;
|
|
}
|
|
|
|
&--inline &__key {
|
|
align-self: center;
|
|
padding: $hotkey-inline-padding;
|
|
min-width: $hotkey-inline-min-width;
|
|
height: calc(1lh - 2px);
|
|
line-height: calc(1lh - 2px);
|
|
|
|
&-icon {
|
|
&.v-kbd {
|
|
padding-block: 0;
|
|
}
|
|
|
|
.v-icon {
|
|
width: min-content;
|
|
min-width: fit-content;
|
|
max-height: $hotkey-inline-icon-max-height;
|
|
|
|
.v-icon__svg {
|
|
height: 100%;
|
|
width: unset;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&--inline &__combination {
|
|
align-items: baseline;
|
|
gap: 1px;
|
|
}
|
|
|
|
&--inline &__divider {
|
|
font-size: $hotkey-inline-divider-font-size;
|
|
}
|
|
|
|
&--inline &__prefix,
|
|
&--inline &__suffix {
|
|
align-self: baseline;
|
|
font-size: inherit;
|
|
}
|
|
|
|
&--variant-elevated &__key.v-kbd {
|
|
@include tools.elevation($hotkey-elevation);
|
|
}
|
|
|
|
&--variant-flat &__key.v-kbd {
|
|
box-shadow: none;
|
|
}
|
|
|
|
&--variant-outlined &__key.v-kbd {
|
|
background: none;
|
|
|
|
@include tools.elevation(0);
|
|
}
|
|
|
|
&--variant-text {
|
|
@include tools.layer('overrides') {
|
|
.v-hotkey__key.v-kbd {
|
|
background: transparent;
|
|
border: none;
|
|
padding-inline: 0;
|
|
min-width: auto;
|
|
|
|
@include tools.elevation(0);
|
|
}
|
|
}
|
|
|
|
.v-hotkey__combination {
|
|
gap: 1px;
|
|
}
|
|
}
|
|
|
|
&--variant-tonal &__key.v-kbd {
|
|
border: unset;
|
|
box-shadow: unset;
|
|
}
|
|
}
|
|
}
|