mirror of
https://github.com/sissbruecker/linkding
synced 2024-11-10 06:04:15 +00:00
197 lines
4.7 KiB
SCSS
197 lines
4.7 KiB
SCSS
// Customized Spectre CSS imports, removing modules that are not used
|
|
// See node_modules/spectre.css/src/spectre.scss for the original version
|
|
|
|
// Variables and mixins
|
|
@import "../../node_modules/spectre.css/src/variables";
|
|
|
|
// Customize variables to reduce font and control sizes
|
|
|
|
// Can use CSS variables for font sizes, as they are not used in SCSS calculations
|
|
$font-size: var(--font-size);
|
|
$font-size-sm: var(--font-size-sm);
|
|
$font-size-lg: var(--font-size-lg);
|
|
|
|
// Can't use CSS variables for these, used in SCSS calculations
|
|
$line-height: 1rem;
|
|
$control-size: $unit-8;
|
|
$control-size-sm: $unit-6;
|
|
$control-size-lg: $unit-9;
|
|
|
|
// Declare defaults for CSS variables, expose SCSS variables as CSS variables
|
|
html {
|
|
--font-size: 0.7rem;
|
|
--font-size-sm: 0.65rem;
|
|
--font-size-lg: 0.8rem;
|
|
|
|
--control-size: #{$control-size};
|
|
--control-size-sm: #{$control-size-sm};
|
|
--control-size-lg: #{$control-size-lg};
|
|
}
|
|
|
|
// Mixins
|
|
@import "../../node_modules/spectre.css/src/mixins";
|
|
|
|
/*! Spectre.css v#{$version} | MIT License | github.com/picturepan2/spectre */
|
|
// Reset and dependencies
|
|
@import "../../node_modules/spectre.css/src/normalize";
|
|
@import "../../node_modules/spectre.css/src/base";
|
|
|
|
// Elements
|
|
@import "../../node_modules/spectre.css/src/typography";
|
|
@import "../../node_modules/spectre.css/src/asian";
|
|
@import "../../node_modules/spectre.css/src/tables";
|
|
@import "../../node_modules/spectre.css/src/buttons";
|
|
@import "../../node_modules/spectre.css/src/forms";
|
|
@import "../../node_modules/spectre.css/src/labels";
|
|
@import "../../node_modules/spectre.css/src/codes";
|
|
@import "../../node_modules/spectre.css/src/media";
|
|
|
|
// Components
|
|
@import "../../node_modules/spectre.css/src/badges";
|
|
@import "../../node_modules/spectre.css/src/dropdowns";
|
|
@import "../../node_modules/spectre.css/src/empty";
|
|
@import "../../node_modules/spectre.css/src/menus";
|
|
@import "../../node_modules/spectre.css/src/modals";
|
|
@import "../../node_modules/spectre.css/src/pagination";
|
|
@import "../../node_modules/spectre.css/src/tabs";
|
|
@import "../../node_modules/spectre.css/src/toasts";
|
|
@import "../../node_modules/spectre.css/src/tooltips";
|
|
|
|
// Utility classes
|
|
@import "../../node_modules/spectre.css/src/animations";
|
|
@import "../../node_modules/spectre.css/src/utilities";
|
|
|
|
// Auto-complete component
|
|
@import "../../node_modules/spectre.css/src/autocomplete";
|
|
|
|
|
|
/* Spectre overrides / fixes */
|
|
|
|
// Fix up visited styles
|
|
a:visited {
|
|
color: $link-color;
|
|
}
|
|
|
|
a:visited:hover {
|
|
color: $link-color-dark;
|
|
}
|
|
|
|
.btn-link:visited:not(.btn-primary) {
|
|
color: $link-color;
|
|
}
|
|
|
|
.btn-link:visited:not(.btn-primary):hover {
|
|
color: $link-color-dark;
|
|
}
|
|
|
|
// Disable transitions on buttons, which can otherwise flicker while loading CSS file
|
|
// something to do with .btn applying a transition for background, and then .btn-link setting a different background
|
|
.btn {
|
|
transition: none !important;
|
|
}
|
|
|
|
// Make code work with light and dark theme
|
|
code {
|
|
color: $gray-color-dark;
|
|
background-color: $code-bg-color;
|
|
box-shadow: 1px 1px 0 $code-shadow-color;
|
|
}
|
|
|
|
// Remove left padding from first pagination link
|
|
.pagination .page-item:first-child a {
|
|
padding-left: 0;
|
|
}
|
|
|
|
// Override border color for tab block
|
|
.tab-block {
|
|
border-bottom: solid 1px $border-color;
|
|
}
|
|
|
|
// Fix padding for first menu item
|
|
ul.menu li:first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
// Form auto-complete menu
|
|
.form-autocomplete .menu {
|
|
.menu-item.selected > a, .menu-item > a:hover {
|
|
background: $secondary-color;
|
|
color: $primary-color;
|
|
}
|
|
|
|
.group-item, .group-item:hover {
|
|
color: $gray-color;
|
|
text-transform: uppercase;
|
|
background: none;
|
|
font-size: 0.6rem;
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
|
|
.modal {
|
|
// Add border to separate from background in dark mode
|
|
.modal-container {
|
|
border: solid 1px $border-color;
|
|
}
|
|
|
|
// Fix modal header to use default color
|
|
.modal-header {
|
|
color: inherit;
|
|
}
|
|
}
|
|
|
|
// Customize modal animation
|
|
@keyframes fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes fade-out {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.modal.active .modal-container, .modal.active .modal-overlay {
|
|
animation: fade-in .15s ease 1;
|
|
}
|
|
|
|
.modal.active.closing .modal-container, .modal.active.closing .modal-overlay {
|
|
animation: fade-out .15s ease 1;
|
|
}
|
|
|
|
// Customize menu animation
|
|
.dropdown .menu {
|
|
animation: fade-in .15s ease 1;
|
|
}
|
|
|
|
// Modal close button
|
|
.modal .modal-header button.close {
|
|
background: none;
|
|
border: none;
|
|
padding: 0;
|
|
line-height: 0;
|
|
cursor: pointer;
|
|
opacity: .85;
|
|
color: $gray-color-dark;
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
// Increase input font size on small viewports to prevent zooming on focus the input
|
|
// on mobile devices. 430px relates to the "normalized" iPhone 14 Pro Max
|
|
// viewport size
|
|
@media screen and (max-width: 430px) {
|
|
.form-input {
|
|
font-size: 16px;
|
|
}
|
|
}
|