yunohost-admin/app/src/scss/main.scss

269 lines
5.2 KiB
SCSS

// This is the default scss file, more specific styling is defined directly into components.
// It it imported in `scr/App.vue` style tag.
// Dependencies variables overrides and custom variables
// Variables overrides are defined before actual SCSS imports
@import 'variables';
// Dependencies SCSS imports
// `~` allow to import a node_modules folder (resolved by Webpack)
@import '~bootstrap/scss/root';
@import '~bootstrap/scss/reboot';
@import '~bootstrap/scss/type';
@import '~bootstrap/scss/images';
@import '~bootstrap/scss/containers';
@import '~bootstrap/scss/grid';
@import '~bootstrap/scss/tables';
@import '~bootstrap/scss/forms';
@import '~bootstrap/scss/buttons';
@import '~bootstrap/scss/transitions';
@import '~bootstrap/scss/dropdown';
@import '~bootstrap/scss/button-group';
@import '~bootstrap/scss/nav';
@import '~bootstrap/scss/navbar';
@import '~bootstrap/scss/card';
// @import "~bootstrap/scss/accordion";
@import '~bootstrap/scss/breadcrumb';
// @import "~bootstrap/scss/pagination";
@import '~bootstrap/scss/badge';
@import '~bootstrap/scss/alert';
@import '~bootstrap/scss/progress';
@import '~bootstrap/scss/list-group';
@import '~bootstrap/scss/close';
// @import "~bootstrap/scss/toasts";
@import '~bootstrap/scss/modal';
@import '~bootstrap/scss/tooltip';
@import '~bootstrap/scss/popover';
// @import "~bootstrap/scss/carousel";
@import '~bootstrap/scss/spinners';
@import '~bootstrap/scss/offcanvas';
@import '~bootstrap/scss/placeholders';
// Helpers
@import '~bootstrap/scss/helpers';
// Utilities
@import '~bootstrap/scss/utilities/api';
// @import '~bootstrap-vue-next/src/styles/styles.scss';
// FIXME modals doesn't appears if we import the scss
@import 'bootstrap-vue-next/dist/bootstrap-vue-next.css';
// Import fonts
@import 'font';
@import '~fork-awesome/scss/fork-awesome.scss';
// Style overrides happens after dependencies imports
html {
min-height: 100vh;
}
body {
overflow-x: hidden;
min-height: 100vh;
margin: 0;
}
#app {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.menu-list .list-group-item {
padding: $list-group-item-padding-y 0;
display: flex;
align-items: center;
}
// BOOSTRAP OVERIDES/ADDITIONS
// Add breakpoints for w-*
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
@each $size, $length in $position-values {
.w-#{$breakpoint}-#{$size} {
width: $length !important;
}
}
.w-#{$breakpoint}-auto {
width: auto !important;
}
}
}
// Add xs sized btn
.btn-xs {
@include button-size(
$btn-padding-y-xs,
$btn-padding-x-xs,
$btn-font-size-sm,
$btn-border-radius-sm
);
}
.btn-outline-dark {
[data-bs-theme='dark'] & {
@include button-outline-variant($light);
}
}
// Allow state of input group to be displayed under the group
.input-group .is-invalid ~ .invalid-feedback {
display: block;
}
.tooltip {
top: 0;
}
// Descriptive list (<b-row /> elems with <b-col> inside)
// FIXME REMOVE when every infos switch to `DescriptionRow`
.row-line {
@include media-breakpoint-up(md) {
&:hover {
background-color: rgba($black, 0.05);
border-radius: 0.2rem;
}
}
@include media-breakpoint-down(md) {
flex-direction: column;
&:not(:last-of-type) {
margin-bottom: 0.5rem;
padding-bottom: 0.5rem;
border-bottom: $border-width solid $card-border-color;
}
}
}
.card + .card,
.card + .config-panel,
.config-panel + .card {
margin-top: 2rem;
}
.card-deck .card + .card {
margin-top: 0;
}
.card-header,
.list-group-item {
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
}
}
.card-header,
.list-group-item {
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: $font-weight-normal;
}
}
h3.card-title {
margin-bottom: 1em;
border-bottom: solid 1px $hr-border-color;
}
// collapse icon
.not-collapsed > .icon {
transform: rotate(-90deg);
}
.collapsed > .icon {
transform: rotate(90deg);
position: relative;
top: 2px;
}
// limit the size of toggle dropdown buttons to a square
.dropdown-toggle-split {
max-width: 2.5rem;
}
// Fork-awesome overrides
.fa-fw {
width: 1.25em !important;
}
// custom css
.actions {
margin-bottom: 2rem;
display: flex;
justify-content: space-between;
@include media-breakpoint-down(sm) {
.buttons {
flex-direction: column;
justify-content: space-between;
}
}
@include media-breakpoint-down(md) {
flex-direction: column-reverse;
margin-bottom: 2rem;
.buttons {
display: flex;
justify-content: space-between;
.btn {
margin-bottom: 0.5rem;
}
}
}
@include media-breakpoint-up(md) {
.btn ~ .btn {
margin-left: 0.5rem;
}
.btn ~ .dropdown-toggle-split {
margin-left: 0;
}
}
}
// Do not display ligatures in invalid-feedback to avoid confusion.
.invalid-feedback {
code {
font-variant-ligatures: none;
}
}
.alert p:last-child {
margin-bottom: 0;
}
code {
background: $gray-300;
padding: 0.15rem 0.25rem;
border-radius: $border-radius;
}
pre code {
padding: 0;
}
.log {
margin-bottom: 0;
padding: 1rem;
background-color: $light;
overflow: auto;
}
.unselectable {
-webkit-user-select: none;
-webkit-touch-callout: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}