mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Setting up tailwind and css modules env Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Using tailwind with scss files also Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Introducing react-table Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Spread extensions to smaller components Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add table sorting Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fixing inputs line-height Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fine-tuning page view Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Align table rows Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Adding extension notice Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fine-tuning overall styling Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Adding a extensions placeholder Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Updating MaterialIcons font Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Aligning not found state Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Making extension components observable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fixing search input cross icon Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix drag-n-drop indication Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fixing extension name sorting Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix linter Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fixing tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Ignoring ts files to tailwind purge Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Cleaning up Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Renaming Table -> ReactTable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fixing integration tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Moving tailwind imports into app.scss Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Moving userExtensionList() out from extension-loader Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Transform extension list to array Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Expand install input placeholder a bit Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
159 lines
3.5 KiB
SCSS
159 lines
3.5 KiB
SCSS
/**
|
|
* Copyright (c) 2021 OpenLens Authors
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
* this software and associated documentation files (the "Software"), to deal in
|
|
* the Software without restriction, including without limitation the rights to
|
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
|
* subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
|
|
.Button {
|
|
position: relative;
|
|
overflow: hidden; // required for transition effect on hover
|
|
color: white;
|
|
font-family: var(--font-main);
|
|
text-align: center;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
border-radius: $radius;
|
|
background: $buttonDefaultBackground;
|
|
padding: round($padding * .9) $padding * 1.5;
|
|
flex-shrink: 0;
|
|
line-height: 1;
|
|
font-size: $font-size;
|
|
user-select: none;
|
|
|
|
&[href] {
|
|
display: inline-block;
|
|
}
|
|
|
|
&.primary {
|
|
background: $buttonPrimaryBackground;
|
|
}
|
|
|
|
&.accent {
|
|
background: $buttonAccentBackground;
|
|
}
|
|
|
|
&.light {
|
|
background-color: $buttonLightBackground;
|
|
color: #505050;
|
|
}
|
|
|
|
&.plain {
|
|
color: inherit;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
|
|
&:disabled {
|
|
background: none;
|
|
opacity: .5;
|
|
}
|
|
|
|
&.active,
|
|
&:focus:not(:active) {
|
|
color: $buttonPrimaryBackground;
|
|
box-shadow: 0 0 0 1px inset;
|
|
}
|
|
}
|
|
|
|
&.outlined {
|
|
color: inherit;
|
|
background: transparent;
|
|
|
|
&.active,
|
|
&:focus {
|
|
color: inherit;
|
|
box-shadow: 0 0 0 1px inset;
|
|
}
|
|
}
|
|
|
|
&.big {
|
|
font-size: 2.2 * $unit;
|
|
border-radius: 50px;
|
|
padding: .75em 1em;
|
|
}
|
|
|
|
&.round {
|
|
border-radius: 50%;
|
|
padding: .7em;
|
|
}
|
|
|
|
form:not([novalidate]):invalid &[type=submit]:not(.active),
|
|
&:disabled {
|
|
opacity: 50%;
|
|
pointer-events: none;
|
|
}
|
|
|
|
&.waiting {
|
|
pointer-events: none;
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 0;
|
|
height: 100%;
|
|
background: transparentize(white, .85);
|
|
animation: waiting 1.5s infinite linear;
|
|
}
|
|
}
|
|
|
|
&:focus {
|
|
outline: none;
|
|
}
|
|
|
|
&:focus:not(:active) {
|
|
transition: box-shadow 350ms;
|
|
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .5);
|
|
}
|
|
|
|
&:active:before {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background: transparentize(white, .85);
|
|
transform-origin: left top;
|
|
transition: transform 150ms;
|
|
transform: rotate(0deg);
|
|
// hackfix: safari prevents clicks on button when click-target is a child element nor button itself
|
|
pointer-events: none;
|
|
}
|
|
|
|
&:before {
|
|
content: "";
|
|
transform: rotate(-90deg);
|
|
}
|
|
}
|
|
|
|
@keyframes waiting {
|
|
0% {
|
|
left: 0;
|
|
width: 0;
|
|
}
|
|
50% {
|
|
left: 25%;
|
|
width: 75%;
|
|
}
|
|
75% {
|
|
left: 100%;
|
|
width: 0;
|
|
}
|
|
}
|