@nextcloud/vue
Version:
Nextcloud vue components
210 lines • 6.58 kB
CSS
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
/*
* Ensure proper alignment of the vue material icons
*/
.material-design-icon[data-v-c3d9e0ce] {
display: flex;
align-self: center;
justify-self: center;
align-items: center;
justify-content: center;
}
.button-vue[data-v-c3d9e0ce] {
--button-size: var(--default-clickable-area);
--button-radius: var(--border-radius-element, calc(var(--button-size) / 2));
--button-padding: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));
position: relative;
width: fit-content;
overflow: hidden;
border: 0;
padding: 0;
font-size: var(--default-font-size);
font-weight: bold;
min-height: var(--button-size);
min-width: var(--button-size);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
border-radius: var(--button-radius);
transition-property: color, border-color, background-color;
transition-duration: 0.1s;
transition-timing-function: linear;
color: var(--color-primary-element-light-text);
background-color: var(--color-primary-element-light);
}
.button-vue--size-small[data-v-c3d9e0ce] {
--button-size: var(--clickable-area-small, 24px);
--button-radius: var(--border-radius);
}
.button-vue--size-large[data-v-c3d9e0ce] {
--button-size: var(--clickable-area-large, 48px);
}
.button-vue *[data-v-c3d9e0ce],
.button-vue span[data-v-c3d9e0ce] {
cursor: pointer;
}
.button-vue[data-v-c3d9e0ce]:focus {
outline: none;
}
.button-vue[data-v-c3d9e0ce]:disabled {
cursor: default;
opacity: 0.5;
filter: saturate(0.7);
}
.button-vue:disabled *[data-v-c3d9e0ce] {
cursor: default;
}
.button-vue[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-primary-element-light-hover);
}
.button-vue[data-v-c3d9e0ce]:active {
background-color: var(--color-primary-element-light);
}
.button-vue__wrapper[data-v-c3d9e0ce] {
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
}
.button-vue--end .button-vue__wrapper[data-v-c3d9e0ce] {
justify-content: end;
}
.button-vue--start .button-vue__wrapper[data-v-c3d9e0ce] {
justify-content: start;
}
.button-vue--reverse .button-vue__wrapper[data-v-c3d9e0ce] {
flex-direction: row-reverse;
}
.button-vue--reverse.button-vue--icon-and-text[data-v-c3d9e0ce] {
padding-inline: var(--button-padding) var(--default-grid-baseline);
}
.button-vue__icon[data-v-c3d9e0ce] {
height: var(--button-size);
width: var(--button-size);
min-height: var(--button-size);
min-width: var(--button-size);
display: flex;
justify-content: center;
align-items: center;
}
.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] > * {
max-height: 16px;
max-width: 16px;
}
.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] svg {
height: 16px;
width: 16px;
}
.button-vue__text[data-v-c3d9e0ce] {
font-weight: bold;
margin-bottom: 1px;
padding: 2px 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.button-vue--icon-only[data-v-c3d9e0ce] {
line-height: 1;
width: var(--button-size) ;
}
.button-vue--text-only[data-v-c3d9e0ce] {
padding: 0 var(--button-padding);
}
.button-vue--text-only .button-vue__text[data-v-c3d9e0ce] {
margin-left: 4px;
margin-right: 4px;
}
.button-vue--icon-and-text[data-v-c3d9e0ce] {
--button-padding: min(calc(var(--default-grid-baseline) + var(--button-radius)), calc(var(--default-grid-baseline) * 4));
padding-block: 0;
padding-inline: var(--default-grid-baseline) var(--button-padding);
}
.button-vue--wide[data-v-c3d9e0ce] {
width: 100%;
}
.button-vue[data-v-c3d9e0ce]:focus-visible {
outline: 2px solid var(--color-main-text) ;
box-shadow: 0 0 0 4px var(--color-main-background) ;
}
.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {
outline: 2px solid var(--color-primary-element-text);
border-radius: var(--border-radius-element, var(--border-radius));
background-color: transparent;
}
.button-vue--vue-primary[data-v-c3d9e0ce] {
background-color: var(--color-primary-element);
color: var(--color-primary-element-text);
}
.button-vue--vue-primary[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-primary-element-hover);
}
.button-vue--vue-primary[data-v-c3d9e0ce]:active {
background-color: var(--color-primary-element);
}
.button-vue--vue-secondary[data-v-c3d9e0ce] {
color: var(--color-primary-element-light-text);
background-color: var(--color-primary-element-light);
}
.button-vue--vue-secondary[data-v-c3d9e0ce]:hover:not(:disabled) {
color: var(--color-primary-element-light-text);
background-color: var(--color-primary-element-light-hover);
}
.button-vue--vue-tertiary[data-v-c3d9e0ce] {
color: var(--color-main-text);
background-color: transparent;
}
.button-vue--vue-tertiary[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-background-hover);
}
.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce] {
color: var(--color-main-text);
background-color: transparent;
}
.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: transparent;
}
.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {
color: var(--color-primary-element-text);
background-color: transparent;
}
.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: transparent;
}
.button-vue--vue-success[data-v-c3d9e0ce] {
background-color: var(--color-success);
color: white;
}
.button-vue--vue-success[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-success-hover);
}
.button-vue--vue-success[data-v-c3d9e0ce]:active {
background-color: var(--color-success);
}
.button-vue--vue-warning[data-v-c3d9e0ce] {
background-color: var(--color-warning);
color: white;
}
.button-vue--vue-warning[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-warning-hover);
}
.button-vue--vue-warning[data-v-c3d9e0ce]:active {
background-color: var(--color-warning);
}
.button-vue--vue-error[data-v-c3d9e0ce] {
background-color: var(--color-error);
color: white;
}
.button-vue--vue-error[data-v-c3d9e0ce]:hover:not(:disabled) {
background-color: var(--color-error-hover);
}
.button-vue--vue-error[data-v-c3d9e0ce]:active {
background-color: var(--color-error);
}