open-vault/ui/app/styles/core/buttons.scss
Angel Garbarino dcff8c2a07
Remove the Bulma CSS Framework (#19878)
* Step one: remove bulma (#19587)

* remove bulma and get app running

* add back in each statments from bulma variables

* remove space

* address pr comments

* add back copyright headedr

* Step two: add back and organize relevant Bulma classes (#19664)

* VAULT-14566 copy/paste bulma css for classes that it defines and we do not.

* add three new helper files and move helpers.scss to a new directory called helper-classes

* rename utils/colors to color_variables

* integrate all bulma sizing into previous utils/spacing doc, address obvious duplicates and rename to spacing_variables.

* small class name issues

* clean up

* comment clean up

* Step three: add Bulma classes to relevant component styles (#19683)

* add in bulma classes used in global-flash component

* add in bulma classes used in the modal component

* remaining bulma classes that can integrate into the vault css

* remove replication-header.scss and replace with helper.

* add bulma tabs classes to tabs component scss file

* remove ui-wizard style

* only do bulma explicit classes for now

* add in breadcrumb styling from bulma

* integrate bulma into css

* remove unecessary tabs bulma styling

* remove non-relevant bulma classes

* remove non relevant bulma css

* Step three cont. Bulma classes to component files (#19691)

* return box-label to as before now that you have those bulma classes

* missing modal bulma classes

* add bulma class to box component

* missed some bulma box classes

* remove scss unecessary

* add in bulma classes to icon component.

* move up icon

* missed modal class

* clean up

* size vars to icon

* Step four: address core directory files (#19719)

* move some basic helpers over to typography helper.

* rename helpers to other

* moveing generic classes to other relevant scss files.

* rename generic to link

* clean up

* clean up

* address core/box

* remove hero because the class is not used anywhere.

* add in level bulma css

* welp forgot a file.

* add in missing bulma classes into core/menu

* UI/step four core files 2 (#19754)

* address issue with input border and box shadow

* remove the is-white class, it was being used very poorly, replaced with exisiting helpers.

* organizing the forms and button core files

* small amount of clean up

* hot mess of colors dealing with just danger for now

* removed moved over bulma classes

* use helper for this one off

* clean up

* wip on the buttons

* fix select select:: after

* clean up select from bulma-classes.

* clean up

* clean up

* small fix

* Cleaning up the last of the core files (welp there's still more) (#19779)

* one missing thing for level core.

* replace no-underline and link-item with helper text-decoration-none

* core/menu double check

* handle core/message

* create and add to bulma classes for core/columns

* add in bulma-classes columns and column... not fun to qa later.

* remove core/notification

* core/progress bar

* revert the hbs changes

* fix over revert

* Core files cont. Focus on core/form (#19794)

* create input and textarea core files, move charts

* remove input and textarea classes from bulma classes

* remove input-hint component file, never a component

* fix the mess that is help-text:

* help and is-help and sub-text are a mess...

* fix switch alignment issues

* deal with file-name

* clean file out of bulma-classes

* create layout helper and move out some remaining button classes

* deal with core/title

* is-marginless move to helper

* helper layout add to core

* clean up

* remove core/tables

* test

* Revert "test"

This reverts commit e695dedfe933d71320cd7eeee33f6b21a8d54b37.

* Core files continued (#19896)

* test

* combine input and textarea

* clean up navbar brannd

* clean up the single instance delete class used on the modal and match with flight icon

* add back autocomplete to component

* create core/file

* alphabetize file css blocks

* core/checkboxes create and address

* combine b-checkboxes classes and remove from core the utils

* address duplicate helper

* Core files continued (#19930)

* clean up helper and remove duplicate class

* more clean up of the other helper

* fix pagination, hot mess

* add radio to checkbox styling

* tag to tags rename singular

* container core file

* finally... changing forms to one element, field

* finally remove bulma-classes

* cleanup

* comment cleanup

* add comment about pagination

* Consolidating our size variables with Bulma's (#19951)

* remove bulma-size variables that are duplicates of our own

* remove unused is-size-xx and duplicate font weights

* remove duplicate class

* ahh this is madness

* remove column-gap var

* remove  duplicate sizing of

* clean up breakpoints

* replace border-radius:2px for var so folks know the common border-radius

* replace header-height with new spacing var

* replace body-size and console-size vars with other sizing vars

* clean up final of size vars

* radius override things blah fixed

* last size var

* add back

* Finish size var clean up (#19970)

* remove size-small, etc.

* fix size-small things

* remove label unused classes

* move out font-family utils

* Update Color Vars (remove bulma color vars and overrides) (#20031)

* remove bulma_variables file

* remove duplicate helper

* replace hardcoded with color vars when appropriate

* broaden font-family utils

* add back box-link-hover-shadow

* welp

* fix pagination coloring

* Small fixes post var and core file work (#20035)

* fix auth-login splash container

* fix some splash page issues

* fix status menu

* fix menu-list regression

* fix regression on button text-decoration

* fix tag regression

* fix regression on select select

* fix regression on field field

* regression on textarea

* button focus state regression

* fix inputs

* fix is-outlined buttons

* Remove bulma switch (#20065)

* remove bulma/switch

* fix disbled style

* Bulma removal: starting the clean up process (#20066)

* remove unused class name

* add todo

* wip shamir-modal-flow usage of file styling

* final fix

* fix message type message-body css

* better match

* fix a.active on popup-menu-content

* VAULT-14625 fix

* blah overrides overrides and oh another override

* fix breadcrumb link

* fixes

* fix readonly state and hover on inputs.scss

* fix button style issue

* fix modal title spacing issue

* clean up

* fix switch

* fix checkbox issue and pr comment

* fix issue with tabs

* pr comment

* Bulma clean up cont. (#20119)

* gotta use rem on page container... it makes a difference, can't switch to px

* missing helper for background color

* fix textarea with icon

* can't seem to replace rem with px ;/

* fix table issues

* clean up columns.scss file

* fix

* fix rem vs px issues

* address some todos

* fix todo on help is-danger

* best effort for sizing var clean up

* reomve duplicate

* clearify

* welp forgot a word

* address sr-only class definition

* move to helper

* replaced single use class with helper and cleaned up flexbox

* move to make more sense

* move around layout and container

* color things

* things

* Cleanup 🧹 (#20196)

* remove carry over classes from bulma

* clean up title.scss

* clean up title is-5 has-top-padding-m and box.scss

* clean up breadcrumbs, buttons, c&r, columns

* clean up core files

* clean up cont looking at component files

* clean up remaining component files

* fix pagination

* pr comments, thank you

* add in merge color helper

* Remove out of scope changes (#20218)

* remove out of scope changes

* fix test

* add changelog

* remove scope creep

* fix scope creep cont

* qa fixes

* Fixes found while QA'ing Secret Engines (#20264)

* fix active tab issue for both secret and auth mounts

* use helper instead of :not last on content margin which causes problems

* fix missing disabled on b-checkbox

* quick fix

* deal with body-size issue

* fix order of other helper

* small fixes from qa

* update comments on the core files and change desktop font size from px back to rem

* missed 16px replaced with 1rem

* address chelseas comments

* fixes that jordan noticed

* remove unstable flexbox test

* test fix

* rename other to general

* address claires qa comments

* add in missing helper must have missed in earlier merge

* fix button

* small small small fix
2023-04-27 14:23:17 -06:00

324 lines
6.4 KiB
SCSS

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
.button {
align-items: center;
background-color: $grey-lightest;
border: 1px solid $grey-light;
border-radius: $radius;
box-shadow: $box-shadow-low;
cursor: pointer;
color: $ui-gray-800;
display: inline-block;
font-size: $size-8;
font-weight: $font-weight-semibold;
height: 2.5rem;
line-height: 1.6;
min-width: 6rem;
padding: $size-10 $size-8;
position: relative;
text-align: center;
text-decoration: none;
transition: background-color $speed, border-color $speed, box-shadow $speed, color $speed;
user-select: none;
vertical-align: middle;
white-space: nowrap;
@keyframes spinAround {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
&:active,
&.is-active,
&:focus {
border-color: darken($grey-light, 10%);
box-shadow: $button-box-shadow-standard;
color: darken($grey-dark, 10%);
}
&:focus:not(:active) {
box-shadow: 0 0 0 0.125em rgba(21, 99, 255, 0.25);
}
&:disabled {
background-color: $white;
border-color: $ui-gray-050;
box-shadow: none;
cursor: not-allowed;
opacity: 0.5;
}
// Button types: is-compact, is-danger, is-danger-outlined, is-flat, is-ghost, is-icon, is-loading, is-link, is-outline, is-primary, is-transparent.
&.is-compact {
height: 2rem;
padding: $size-11 $size-8;
}
&.is-danger {
background-color: $red-500;
border-color: darken($red-500, 2%);
color: $white;
text-shadow: 0 1px 1px rgba($black, 0.25);
&:hover:not([disabled]) {
background-color: darken($red-500, 5%);
border-color: darken($red-500, 5%);
box-shadow: $box-shadow-middle;
}
&:active,
&.is-active {
background-color: darken($red-500, 10%);
border-color: darken($red-500, 10%);
box-shadow: $box-shadow-middle;
}
&:focus {
border-color: darken($red-500, 10%);
box-shadow: $button-box-shadow-standard;
}
}
&.is-danger-outlined {
border: 1px solid $red-500;
color: $red-500;
}
&.is-flat {
min-width: auto;
border: none;
box-shadow: none;
}
&.is-ghost {
background-color: transparent;
border-color: transparent;
box-shadow: none;
color: $blue;
text-decoration: none;
&:hover {
color: $blue-500;
background-color: $grey-lightest;
}
}
&.is-icon {
padding: 0.25rem $size-3;
}
&.is-loading {
color: transparent !important;
pointer-events: none;
&::after {
animation: spinAround 500ms infinite linear;
border: 2px solid $ui-gray-300;
border-radius: 290486px;
border-right-color: transparent;
border-top-color: transparent;
content: '';
display: block;
height: 1em;
width: 1em;
left: calc(50% - (1em / 2));
top: calc(50% - (1em / 2));
position: absolute !important;
}
}
&.is-link {
background-color: transparent;
border-color: transparent;
color: $blue;
text-decoration: none;
font-weight: $font-weight-semibold;
box-shadow: none;
min-width: 4rem;
}
&.is-primary {
background-color: $blue;
border-color: darken($blue, 2%);
color: $white;
font-weight: $font-weight-bold;
text-shadow: 0 1px 1px rgba($black, 0.25);
&:disabled {
background-color: $ui-gray-700;
border-color: transparent;
box-shadow: none;
}
&:hover:not([disabled]) {
background-color: darken($blue, 5%);
border-color: darken($blue, 5%);
box-shadow: $box-shadow-middle;
}
&:active,
&.is-active {
background-color: darken($blue, 10%);
border-color: darken($blue, 10%);
box-shadow: $box-shadow-middle;
}
&:focus {
border-color: darken($blue, 10%);
box-shadow: $button-box-shadow-standard;
}
&.is-loading::after {
border-color: transparent transparent $white $white;
}
&.is-underlined {
&:active,
&.is-active {
background-color: transparent;
border-bottom: 2px solid darken($blue, 10%);
border-radius: unset;
color: darken($blue, 10%);
}
}
// is-primary.is-outlined the only is-outlined buttons are primary.
&.is-outlined {
background-color: transparent;
border-color: $blue;
color: $blue;
&:hover,
&:focus {
background-color: transparent;
border-color: darken($blue, 10%);
color: $blue;
}
&:active,
&.is-active {
background-color: transparent;
border-color: darken($blue, 10%);
color: darken($blue, 10%);
}
}
&.is-outlined [disabled] {
background-color: transparent;
border-color: $ui-gray-700;
box-shadow: none;
color: $ui-gray-700;
}
}
&.is-transparent {
color: currentColor;
background: none;
border: none;
box-shadow: none;
min-width: auto;
padding: 0;
}
// End of button types
&.tool-tip-trigger {
color: $grey-dark;
min-width: auto;
padding: 0;
}
&.has-icon-left,
&.has-icon-right {
.hs-icon {
height: 16px;
min-width: auto;
width: 16px;
}
}
&.has-icon-left {
.hs-icon {
&,
&:first-child:last-child {
position: relative;
left: -$size-10;
}
}
}
&.has-icon-right {
.hs-icon {
&,
&:first-child:last-child {
margin-left: $spacing-xxs;
margin-right: -$spacing-xxs;
}
}
}
}
.button.icon {
box-sizing: border-box;
padding: 0 $size-11;
height: 24px;
width: 24px;
&,
& .icon {
min-width: 0;
}
}
.button.auto-width,
.button .icon.auto-width {
width: auto;
min-width: auto;
margin: 0 !important;
}
.button.next-feature-step {
background: $white;
border: 1px solid $grey-light;
border-radius: $radius;
box-shadow: none;
color: $blue;
display: flex;
height: auto;
line-height: 1.2;
justify-content: space-between;
text-align: left;
white-space: normal;
padding: $size-8;
width: 100%;
}
a.button.disabled {
color: $white;
background-color: $grey-dark;
opacity: 0.5;
border-color: transparent;
box-shadow: none;
cursor: default;
}
.icon-button {
background: transparent;
padding: 0;
margin: 0;
border: none;
cursor: pointer;
}
.text-button {
padding: unset;
border: none;
background-color: inherit;
color: inherit;
font-size: inherit;
font-weight: inherit;
cursor: pointer;
}