* @license GNU AGPL version 3 or any later version
*
*/
+@use 'variables';
+@use 'sass:math';
+@import 'functions';
/* BASE STYLING ------------------------------------------------------------ */
// no h1 allowed since h1 = logo
/* APP-NAVIGATION ------------------------------------------------------------ */
/* Navigation: folder like structure */
#app-navigation:not(.vue) {
- width: $navigation-width;
+ width: variables.$navigation-width;
position: fixed;
- top: $header-height;
+ top: variables.$header-height;
left: 0;
z-index: 500;
overflow-y: auto;
margin: 0;
padding: 0;
background: none;
- @include icon-color('triangle-s', 'actions', $color-black, 1, true);
+ @include icon-color('triangle-s', 'actions', variables.$color-black, 1, true);
background-size: 16px;
background-repeat: no-repeat;
background-position: center;
z-index: 105; // above a, under button
background-color: var(--color-background-hover);
border-radius: 50%;
- transition: opacity $animation-quick ease-in-out;
+ transition: opacity variables.$animation-quick ease-in-out;
}
/* force padding on link no matter if 'a' has an icon class */
.app-navigation-entry-utils-menu-button {
/* Prevent bg img override if an icon class is set */
button:not([class^='icon-']):not([class*=' icon-']) {
- @include icon-color('more', 'actions', $color-black, 1, true);
+ @include icon-color('more', 'actions', variables.$color-black, 1, true);
}
&:hover button,
&:focus button {
.app-navigation-entry-deleted {
display: inline-flex;
padding-left: 44px;
- transform: translateX(#{$navigation-width});
+ transform: translateX(#{variables.$navigation-width});
.app-navigation-entry-deleted-description {
position: relative;
white-space: nowrap;
position: relative;
display: flex;
// padding is included in height
- padding-top: $header-height;
+ padding-top: variables.$header-height;
min-height: 100%;
}
/**
* !Important. We are defining the minimum requirement we want for flex
- * Just before the mobile breakpoint we have $breakpoint-mobile (1024px) - $navigation-width
+ * Just before the mobile breakpoint we have variables.$breakpoint-mobile (1024px) - variables.$navigation-width
* -> 468px. In that case we want 200px for the list and 268px for the content
*/
-$min-content-width: $breakpoint-mobile - $navigation-width - $list-min-width;
+$min-content-width: variables.$breakpoint-mobile - variables.$navigation-width - variables.$list-min-width;
#app-content {
z-index: 1000;
min-height: 100%;
/* margin if navigation element is here */
#app-navigation:not(.hidden) + & {
- margin-left: $navigation-width;
+ margin-left: variables.$navigation-width;
}
/* no top border for first settings item */
> .section:first-child {
*/
#app-sidebar {
width: 27vw;
- min-width: $sidebar-min-width;
- max-width: $sidebar-max-width;
+ min-width: variables.$sidebar-min-width;
+ max-width: variables.$sidebar-max-width;
display: block;
- @include position('sticky');
- top: $header-height;
+ position: -webkit-sticky;
+ position: sticky;
+ top: variables.$header-height;
right:0;
overflow-y: auto;
overflow-x: hidden;
z-index: 1500;
- height: calc(100vh - #{$header-height});
+ height: calc(100vh - #{variables.$header-height});
background: var(--color-main-background);
border-left: 1px solid var(--color-border);
flex-shrink: 0;
width: 100%;
padding: 0;
margin: 0;
+ background-color: var(--color-main-background);
box-shadow: none;
border: 0;
border-radius: 0;
/* POPOVER MENU ------------------------------------------------------------ */
$popoveritem-height: 44px;
$popovericon-size: 16px;
-$outter-margin: ($popoveritem-height - $popovericon-size) / 2;
+$outter-margin: math.div($popoveritem-height - $popovericon-size, 2);
.ie,
.edge {
/* CONTENT LIST ------------------------------------------------------------ */
.app-content-list {
- @include position('sticky');
- top: $header-height;
+ position: -webkit-sticky;
+ position: sticky;
+ top: variables.$header-height;
border-right: 1px solid var(--color-border);
display: flex;
flex-direction: column;
transition: transform 250ms ease-in-out;
- min-height: calc(100vh - #{$header-height});
- max-height: calc(100vh - #{$header-height});
+ min-height: calc(100vh - #{variables.$header-height});
+ max-height: calc(100vh - #{variables.$header-height});
overflow-y: auto;
overflow-x: hidden;
- flex: 1 1 $list-min-width;
- min-width: $list-min-width;
- max-width: $list-max-width;
+ flex: 1 1 variables.$list-min-width;
+ min-width: variables.$list-min-width;
+ max-width: variables.$list-max-width;
/* Default item */
.app-content-list-item {
+++ /dev/null
-// CSS4 Variables
-// Remember, you cannot use scss functions with css4 variables
-// All css4 variables must be fixed! Scss is a PRE processor
-// css4 variables are processed after scss!
-:root {
- --color-main-text: #{$color-main-text};
- --color-main-background: #{$color-main-background};
- --color-main-background-translucent: #{$color-main-background-translucent};
-
- // To use like this: background-image: linear-gradient(0, var(--gradient-main-background));
- --gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%;
-
- --color-background-hover: #{$color-background-hover};
- --color-background-dark: #{$color-background-dark};
- --color-background-darker: #{$color-background-darker};
-
- --color-placeholder-light: #{$color-placeholder-light};
- --color-placeholder-dark: #{$color-placeholder-dark};
-
- --color-primary: #{$color-primary};
- --color-primary-hover: #{$color-primary-hover};
- --color-primary-light: #{$color-primary-light};
- --color-primary-light-hover: #{$color-primary-light-hover};
- --color-primary-text: #{$color-primary-text};
- --color-primary-light-text: #{$color-primary-light-text};
- --color-primary-text-dark: #{$color-primary-text-dark};
- --color-primary-element: #{$color-primary-element};
- --color-primary-element-hover: #{$color-primary-element-hover};
- --color-primary-element-light: #{$color-primary-element-light};
- --color-primary-element-lighter: #{$color-primary-element-lighter};
-
- --color-error: #{$color-error};
- --color-error-hover: #{$color-error-hover};
- --color-warning: #{$color-warning};
- --color-warning-hover: #{$color-warning-hover};
- --color-success: #{$color-success};
- --color-success-hover: #{$color-success-hover};
-
- --color-text-maxcontrast: #{$color-text-maxcontrast};
- --color-text-light: #{$color-main-text};
- --color-text-lighter: #{$color-text-maxcontrast};
-
- --image-logo: #{$image-logo};
- --image-login-background: #{$image-login-background};
- --image-logoheader: #{$image-logoheader};
- --image-favicon: #{$image-favicon};
-
- --color-loading-light: #{$color-loading-light};
- --color-loading-dark: #{$color-loading-dark};
-
- --color-box-shadow: #{$color-box-shadow};
-
- --color-border: #{$color-border};
- --color-border-dark: #{$color-border-dark};
-
-
- --border-radius: #{$border-radius};
- --border-radius-large: #{$border-radius-large};
- --border-radius-pill: #{$border-radius-pill};
-
- --font-face: #{$font-face};
- --default-font-size: #{$default-font-size};
-
- --default-line-height: #{$default-line-height};
-
- --animation-quick: #{$animation-quick};
- --animation-slow: #{$animation-slow};
-
- --header-height: #{$header-height};
-}
*
*/
-/**
- * Removes the "#" from a color.
- *
- * @param string $color The color
- * @return string The color without #
- */
-@function remove-hash-from-color($color) {
- $color: unquote($color);
- $index: str-index(inspect($color), '#');
- @if $index {
- $color: str-slice(inspect($color), 2);
- }
- @return $color;
-}
-
/**
* @see core/src/icons.js
*/
$varName: "--icon-#{$icon}-#{$color}";
background-image: var(#{$varName});
}
-
-@mixin position($value) {
- @if $value == 'sticky' {
- position: -webkit-sticky; // Safari support
- position: sticky;
- } @else {
- position: $value;
- }
-}
* @license GNU AGPL version 3 or any later version
*
*/
+@use 'variables';
/* prevent ugly selection effect on accidental selection */
#header,
top: 0;
width: 100%;
z-index: 2000;
- height: $header-height;
+ height: variables.$header-height;
background-color: var(--color-primary);
background-image: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%);
box-sizing: border-box;
@mixin header-menu-height() {
min-height: calc(44px * 1.5); // show at least 1.5 entries
- max-height: calc(100vh - #{$header-height} * 4);
+ max-height: calc(100vh - #{variables.$header-height} * 4);
}
#header {
max-width: 350px;
@include header-menu-height();
right: 5px; // relative to parent
- top: $header-height;
+ top: variables.$header-height;
margin: 0;
&:not(.popovermenu) {
display: flex;
justify-content: center;
align-items: center;
- width: $header-height;
+ width: variables.$header-height;
height: 100%;
cursor: pointer;
opacity: 0.6;
/* NAVIGATION --------------------------------------------------------------- */
nav[role='navigation'] {
display: inline-block;
- width: $header-height;
- height: $header-height;
- margin-left: -$header-height;
+ width: variables.$header-height;
+ height: variables.$header-height;
+ margin-left: -#{variables.$header-height};
position: relative;
}
/* Apps menu */
#appmenu {
display: inline-flex;
- min-width: $header-height;
+ min-width: variables.$header-height;
z-index: 2;
li {
position: relative;
display: flex;
margin: 0;
- height: $header-height;
- width: $header-height;
+ height: variables.$header-height;
+ width: variables.$header-height;
align-items: center;
justify-content: center;
opacity: .6;
background: var(--color-primary) !important;
&.skip-content {
- left: $navigation-width;
+ left: variables.$navigation-width;
margin-left: 3px;
}
&:focus,
&:active {
- top: $header-height;
+ top: variables.$header-height;
}
}
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+@use 'variables';
+@import 'functions';
/* GLOBAL ------------------------------------------------------------------- */
[class^='icon-'], [class*=' icon-'] {
background-size: 32px !important;
}
-.icon-white {
- &.icon-shadow {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
- }
-}
-
-.icon-audio-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-audio-off-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-fullscreen-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-screen-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-screen-off-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
-.icon-video-white {
- filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
-}
-
+.icon-white.icon-shadow,
+.icon-audio-white,
+.icon-audio-off-white,
+.icon-fullscreen-white,
+.icon-screen-white,
+.icon-screen-off-white,
+.icon-video-white,
.icon-video-off-white {
filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
}
* @license GNU AGPL version 3 or any later version
*
*/
+@use 'variables';
+@import 'functions';
/* Specifically override browser styles */
input, textarea, select, button, div[contenteditable=true], div[contenteditable=false] {
margin-right: 0;
&:disabled {
cursor: default;
- @include icon-color('confirm-fade', 'actions', $color-black, 2, true);
+ @include icon-color('confirm-fade', 'actions', variables.$color-black, 2, true);
}
}
/* Radio & Checkboxes */
$checkbox-radio-size: 14px;
-$color-checkbox-radio-disabled: nc-darken($color-main-background, 27%);
-$color-checkbox-radio-border: nc-darken($color-main-background, 47%);
+$color-checkbox-radio-disabled: nc-darken(variables.$color-main-background, 27%);
+$color-checkbox-radio-border: nc-darken(variables.$color-main-background, 47%);
$color-checkbox-radio-white: #fff;
input {
-@media only screen and (max-width: $breakpoint-mobile) {
+@use 'variables';
+
+@media only screen and (max-width: variables.$breakpoint-mobile) {
/* position share dropdown */
#dropdown {
/* APP SIDEBAR TOGGLE and SWIPE ----------------------------------------------*/
#app-navigation {
- transform: translateX(-#{$navigation-width});
+ transform: translateX(-#{variables.$navigation-width});
}
.snapjs-left {
#app-navigation {
#app-navigation-toggle-back {
position: fixed;
display: inline-block !important;
- top: $header-height;
+ top: variables.$header-height;
left: 0;
width: 44px;
height: 44px;
display: none;
}
#body-settings #controls {
- min-width: $breakpoint-mobile !important;
+ min-width: variables.$breakpoint-mobile !important;
}
/* do not show dates in filepicker */
* @license GNU AGPL version 3 or any later version
*
*/
+@use 'variables';
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {
margin: 0;
#controls {
box-sizing: border-box;
- @include position('sticky');
+ position: -webkit-sticky;
+ position: sticky;
height: 44px;
padding: 0;
margin: 0;
-ms-user-select: none;
user-select: none;
display: flex;
- top: $header-height;
+ top: variables.$header-height;
}
/* position controls for apps with app-navigation */
--- /dev/null
+@use 'variables';
+@import 'functions';
+
+.toastify.toast {
+ min-width: 200px;
+ background: none;
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+ box-shadow: 0 0 6px 0 var(--color-box-shadow);
+ padding: 12px;
+ padding-right: 34px;
+ margin-top: 45px;
+ position: fixed;
+ z-index: 9000;
+ border-radius: var(--border-radius);
+
+ .toast-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 38px;
+ opacity: 0.4;
+ padding: 12px;
+ @include icon-color('close', 'actions', variables.$color-black, 2, true);
+ background-position: center;
+ background-repeat: no-repeat;
+ text-indent: 200%;
+ white-space: nowrap;
+ overflow: hidden;
+
+ &:hover, &:focus, &:active {
+ cursor: pointer;
+ opacity: 1;
+ }
+ }
+}
+.toastify.toastify-top {
+ right: 10px;
+}
+
+.toast-error {
+ border-left: 3px solid var(--color-error);
+}
+.toast-info {
+ border-left: 3px solid var(--color-primary);
+}
+.toast-warning {
+ border-left: 3px solid var(--color-warning);
+}
+.toast-success {
+ border-left: 3px solid var(--color-success);
+}
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-
- // SCSS darken/lighten function override
+// SCSS darken/lighten function override
@function nc-darken($color, $value) {
@return darken($color, $value);
}
// mobile. Keep in sync with core/js/js.js
$breakpoint-mobile: 1024px;
+