Compare commits

...

36 Commits

Author SHA1 Message Date
mrliptontea
5e671bb9b7 Release v2.11.0 2020-05-08 23:32:34 +01:00
Grzegorz Rajchman
604a00561b Merge pull request #190 from mrliptontea/redmineup-improvements
Bulk improvements
2020-05-08 23:31:01 +01:00
mrliptontea
1d5b42235e Add Redmine Banner styles 2020-05-08 23:28:42 +01:00
mrliptontea
2b492be04a RedmineUP improvements 2020-05-08 23:28:27 +01:00
mrliptontea
4245d5daf6 Add table icon to jstoolbar 2020-04-25 18:40:01 +01:00
mrliptontea
06e7e4fded Fix checkbox padding when table borders are enabled 2020-04-25 18:38:45 +01:00
mrliptontea
36000bd02c Restore $color-priorities 2020-04-25 18:35:37 +01:00
Grzegorz Rajchman
510a32ec41 Merge pull request #180 from mrliptontea/issue-179-full-screen-mode-issues
Fix #179 full screen mode issues
2020-04-14 21:14:50 +01:00
mrliptontea
80105407af Fix #179 full screen mode issues 2020-04-14 21:12:53 +01:00
Grzegorz Rajchman
6e9e834816 Merge pull request #178 from mrliptontea/issue-177-icon-lose-hover
Fix #177 change styling for icon-only buttons
2020-04-13 20:13:32 +01:00
mrliptontea
0d1daf1a22 Fix #177 change styling for icon-only buttons 2020-04-13 20:05:18 +01:00
mrliptontea
e7500035e3 Release v2.10.2 2020-04-09 15:37:37 +01:00
Grzegorz Rajchman
d3ed59dc9b Merge pull request #176 from mrliptontea/fix-175-target-note-edit
Fix target note cannot be edited
2020-04-09 09:21:58 +01:00
mrliptontea
edbe4feca8 Fix #175 target note cannot be edited 2020-04-09 09:20:38 +01:00
mrliptontea
942f23f2cb Release v2.10.1 2020-04-06 18:53:33 +01:00
Grzegorz Rajchman
3fc4660203 Merge pull request #163 from mrliptontea/issue-160-checklist-menu-hover
Fix #160 checklist plugin menu highlight color
2020-04-06 18:52:50 +01:00
mrliptontea
1fa4a87da7 Fix #160 checklist plugin menu highlight color 2020-04-06 18:49:52 +01:00
mrliptontea
07a08db560 Release v2.10.0 2020-04-05 22:17:14 +01:00
Grzegorz Rajchman
2eb5d83f59 Merge pull request #174 from mrliptontea/issues-169-170-171-172
* Fix #172 Collapsed/expended icons for completed versions.
* Fix #171 "Display" label in Gantt option.
* Fix #170 radio buttons in projects options.
* Fix #169 styles in the spent time tab.
* Change lightness of shades 50 and 950.
* Change loader styles.
* Change rouge syntax highlighter color scheme.
2020-04-05 22:15:01 +01:00
mrliptontea
1bdfab795a Change rouge syntax highlighter color scheme 2020-04-05 22:10:20 +01:00
mrliptontea
aa4c59a48c Fix some styling issues in Redmine 4.
* Fix #172 Collapsed/expended icons for completed versions.
* Fix #171 "Display" label in Gantt option.
* Fix #170 radio buttons in projects options.
* Fix #169 styles in the spent time tab.
* Change lightness of shades 50 and 950.
* Change loader styles.
2020-04-05 18:53:53 +01:00
Grzegorz Rajchman
aaddd2e10b Merge pull request #168 from mrliptontea/issues-148-150-dashboard-agile-plugins
Fix styling issues in Dashboard and Agile plugins
2020-03-28 13:10:05 +00:00
mrliptontea
5c14dbbf62 Simpler workflow trigger 2020-03-28 13:04:59 +00:00
mrliptontea
f8609cbbbb Fix styling issues in Dashboard and Agile plugins
- Fix #150 styling for query totals and expander in Agile plugin.
- Fix #148 full screen view for Dashboard plugin.
2020-03-28 13:01:29 +00:00
Grzegorz Rajchman
6443eba8c2 Merge pull request #166 from mrliptontea/issue-164-responsive-theme-not-applied
Fix #164 Apply responsive override more generally
2020-03-28 11:37:00 +00:00
mrliptontea
70c88722fb Fix #164 Apply responsive override more generally 2020-03-27 18:15:12 +00:00
Grzegorz Rajchman
4b10532cea Upgrade packages and improve linter action (#167) 2020-03-27 18:14:49 +00:00
Grzegorz Rajchman
77a9633984 Merge pull request #162 from mrliptontea/issue-159/long-text-wrapping
Fix #159 wrapping long text in issue attributes
2020-03-15 21:35:01 +00:00
mrliptontea
92e92e75b9 Fix #159 wrapping long text in issue attributes 2020-03-15 21:29:40 +00:00
Grzegorz Rajchman
e4c69d5d86 Merge pull request #161 from mrliptontea/dependabot/npm_and_yarn/acorn-7.1.1
Bump acorn from 7.1.0 to 7.1.1
2020-03-15 21:25:34 +00:00
dependabot[bot]
4d82879d90 Bump acorn from 7.1.0 to 7.1.1
Bumps [acorn](https://github.com/acornjs/acorn) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.1.0...7.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-13 21:27:39 +00:00
mrliptontea
a2b49b6ff1 Release v2.9.1 2020-02-22 14:55:25 +00:00
mrliptontea
205109ac30 Fix roadmap badge positioning 2020-02-22 14:54:33 +00:00
mrliptontea
e981dc4ec0 Merge branch '1resu-patch-1' 2020-02-22 14:45:55 +00:00
mrliptontea
955aca022e Build updated JS 2020-02-22 14:41:40 +00:00
1resu
164391c6c2 Fix url.indexOf is Not a Function Error
The sidebar toogler isn't working with newer jquery versions (https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed)
2020-02-20 22:20:12 +01:00
40 changed files with 2288 additions and 1678 deletions

10
.eslintrc.js Normal file
View File

@@ -0,0 +1,10 @@
module.exports = {
"extends": "standard",
"globals": {
"$": "readonly",
"localStorage": "readonly",
},
"ignorePatterns": [
"/javascripts/",
],
};

View File

@@ -1,11 +1,6 @@
name: Run linters
on:
push:
paths:
- src/*
- svg/*
- package*.json
on: push
jobs:
lint:
@@ -23,11 +18,14 @@ jobs:
- name: Install npm dependencies
run: npm ci
- name: Lint JavaScript
run: npm run lint:js
- name: Lint Sass
run: npm run lint:sass
- name: Run linters
uses: samuelmeuli/lint-action@v1
with:
github_token: ${{ secrets.github_token }}
eslint: true
eslint_dir: "src/javascripts"
stylelint: true
stylelint_dir: "src/sass"
- name: Check build
run: npm run build

View File

@@ -56,6 +56,54 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
## Changelog
v2.11.0 (2020-05-08):
* Fixed #179: full screen mode issues when using redmine_wysiwyg_editor plugin.
* Fixed #177: changed styling for icon-only buttons to resolve weird behavior on hover.
* Added `$icon-width` variable.
* Added margin in some places like after buttons, avatars.
* Changed tooltip background to black.
* Changed top menu styles.
* Restored `$color-priorities` variable, `false` by default.
* Added `parse-length($value, $side)` function for extracting length/width from margin/padding/border.
* Fixed checkbox cell padding when issue table borders are enabled.
* Added table icon to jstoolbar styles.
* Refactored icons code.
* Improved styles for [RedmineUP](https://www.redmineup.com/pages/plugins) plugins (Agile, Checklists, CRM, Tags).
* Improved vertical alignment of certain form elements.
* Improved styles for sortable elements.
* Added new `.inline-flex` class.
* Improved styles for [Redmine Banner](https://github.com/akiko-pusu/redmine_banner) plugin.
v2.10.2 (2020-04-09):
* Fixed #175: couldn't edit note when it's URL target.
* Improved styling of some inline edit forms.
v2.10.1 (2020-04-06):
* Fixed #160: highlight color in jQuery UI menu, most notably in checklist plugin.
v2.10.0 (2020-04-05):
* Fixed #172 Collapsed/expended icons for completed versions.
* Fixed #171 "Display" label in Gantt option.
* Fixed #170 radio buttons in projects options.
* Fixed #169 styles in the spent time tab.
* Fixed #164: apply responsive overrides more generally
* Fixed #159: wrapping long text in issue attributes.
* Fixed #150: styling for query totals and expander in Agile plugin.
* Fixed #148: full screen view for Dashboard plugin.
* Fixed a "timeline" positioning in issue notes/changes.
* Changed lightness of shades 50 and 950.
* Changed loader styles.
* Changed rouge syntax highlighter color scheme.
v2.9.1 (2020-02-22):
* Merged fix #155: $.load function removed from jQuery.
* Fixed badge positioning in roadmap screen.
v2.9.0 (2020-01-30):
* Fixed #141: improved styling for issue edit form.

File diff suppressed because one or more lines are too long

1787
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -20,13 +20,13 @@
"scripts": {
"build": "grunt",
"watch": "grunt watch",
"lint:js": "standard",
"lint:js": "eslint src/javascripts/",
"lint:sass": "stylelint src/sass/**/*.scss",
"lint": "npm run -S lint:js && npm run -S lint:sass"
},
"dependencies": {
"autoprefixer": "^9.7.4",
"grunt": "^1.0.4",
"autoprefixer": "^9.7.5",
"grunt": "^1.1.0",
"grunt-contrib-uglify": "^4.0.1",
"grunt-contrib-watch": "^1.1.0",
"grunt-postcss": "^0.9.0",
@@ -35,19 +35,15 @@
"sass-inline-svg": "^1.2.3"
},
"devDependencies": {
"standard": "^13.1.0",
"eslint": "^6.8.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"stylelint": "^10.1.0",
"stylelint-order": "^3.1.1",
"stylelint-scss": "^3.14.2"
},
"standard": {
"globals": [
"$",
"localStorage"
],
"ignore": [
"/javascripts"
]
"stylelint-scss": "^3.16.0"
},
"browserslist": [
"last 2 versions",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -44,7 +44,7 @@ PurpleMine.SidebarToggler = (function () {
// Fix issue with context menu position
if (this.$main.css('position') === 'relative') {
$(window).load(function () {
$(window).on('load', function () {
$('#context-menu').appendTo('#wrapper3')
})
}

4
src/sass/_functions.scss Normal file
View File

@@ -0,0 +1,4 @@
// Functions
// --------------------------------------------------
@import "functions/parse-length";

View File

@@ -14,6 +14,7 @@ $sidebar-position: left !default;
$clean-issues: true !default;
$color-trackers: true !default;
$color-status: true !default;
$color-priorities: false !default;
$priority-icon: true !default;
$use-gravatars: true !default;
$use-logo: false !default;
@@ -23,6 +24,7 @@ $issue-subject-large: true !default;
$enable-sidebar-toggler: true !default;
$wiki-page-more-vertical-space: true !default;
$top-menu-collapse: false !default;
$agile-board-customize: true !default;
//== Colors
@@ -43,7 +45,7 @@ $black: #000 !default;
$gray: hsl(hue($indigo), 20%, 85%) !default;
$shade-map: (
50: 90%,
50: 87.5%,
100: 80%,
200: 65%,
300: 40%,
@@ -53,7 +55,7 @@ $shade-map: (
700: 40%,
800: 65%,
900: 80%,
950: 90%
950: 87.5%
) !default;
@function shade($color, $shade: 500) {
@@ -166,11 +168,11 @@ $wiki-font-size: 16px !default;
$wiki-line-height: 1.6 !default;
$wiki-preview-bg: $body-bg !default;
$toc-bg: shade($yellow, 50) !default;
$toc-border: mix($yellow, $gray-500, 25%) !default;
$toc-bg: $gray-50 !default;
$toc-border: $gray-300 !default;
$toc-text: $text-color !default;
$toc-link: shade($yellow, 800) !default;
$toc-link-hover: shade($yellow, 900) !default;
$toc-link: $link-color !default;
$toc-link-hover: $link-hover-color !default;
$toc-shadow: 0 1px 3px rgba($black, .07) !default;
$toc-active-link: darken($link-color, 10%) !default;
$toc-active-link-hover: shade($toc-active-link, 700) !default;
@@ -237,6 +239,11 @@ $table-bg-active: $table-bg-hover !default;
$table-border-color: $gray-300 !default;
$table-color-odd-factor: if($table-list-color-odd-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-even-factor: if($table-list-color-even-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-hover-factor: $table-hover-factor * .5 !default;
$table-color-border-shade: 100 !default;
//== Issue statuses
//
@@ -303,6 +310,65 @@ $priority-default-icons-map: (
$priority-custom-icons-map: () !default;
$priority-icons-map: map-merge($priority-default-icons-map, $priority-custom-icons-map);
$priority-default-color-map: (
lowest: (
border: shade($green, $table-color-border-shade),
background: $green,
color: $text-color,
link: shade($green, 700),
),
low2: (
border: shade(mix($teal, $green), $table-color-border-shade),
background: mix($teal, $green),
color: $text-color,
link: shade(mix($teal, $green), 700),
),
low3: (
border: shade($teal, $table-color-border-shade),
background: $teal,
color: $text-color,
link: shade($teal, 700),
),
default: (
border: shade($blue, $table-color-border-shade),
background: $blue,
color: $text-color,
link: shade($blue, 700),
),
high5: (
border: shade($purple, $table-color-border-shade),
background: $purple,
color: $text-color,
link: shade($purple, 700),
),
high4: (
border: shade($orange, $table-color-border-shade),
background: $orange,
color: $text-color,
link: shade($orange, 700),
),
high3: (
border: shade(mix($red, $orange), $table-color-border-shade),
background: mix($red, $orange),
color: $text-color,
link: shade(mix($red, $orange), 700),
),
high2: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
),
highest: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
)
) !default;
$priority-custom-color-map: () !default;
$priority-color-map: map-merge($priority-default-color-map, $priority-custom-color-map);
//== Trackers links
//
@@ -405,6 +471,7 @@ $btn-success-border: $btn-success-bg !default;
//== Action icons
//
$icon-width: 20px !default;
$icon-opacity: .7 !default;
$icon-hover-opacity: 1 !default;
$icon-color-map: (
@@ -584,6 +651,11 @@ $flash-success-border: shade($green, 500) !default;
$flash-success-text: $white !default;
$flash-success-link: $white !default;
$flash-info-bg: shade($blue, 100) !default;
$flash-info-border: shade($blue, 200) !default;
$flash-info-text: shade($blue, 800) !default;
$flash-info-link: shade($blue, 900) !default;
$flash-warning-bg: shade($yellow, 200) !default;
$flash-warning-border: shade($yellow, 300) !default;
$flash-warning-text: shade($yellow, 800) !default;
@@ -612,7 +684,7 @@ $progress-bar-info-bg: $brand-info !default;
$panel-body-padding-vertical: 15px !default;
$panel-body-padding-horizontal: 15px !default;
$panel-body-padding: $panel-body-padding-vertical $panel-body-padding-horizontal !default;
$panel-color: $gray-900 !default;
$panel-color: $text-color !default;
$panel-bg: $gray-50 !default;
$panel-border: $gray-400 !default;
$panel-border-radius: $border-radius-base !default;
@@ -648,10 +720,15 @@ $issue-attribute-padding-h: 5px !default;
//== Speech "bubbles"
//
$bubble-bg: $issue-bg !default;
$bubble-border: $issue-border !default;
$bubble-text: $issue-text !default;
$bubble-gravatar-size: 24px !default;
$bubble-gravatar-space: 12px !default;
$bubble-padding-vertical: 8px !default;
$bubble-padding-horizontal: 15px !default;
$bubble-padding-horizontal: 12px !default;
$bubble-target-border: saturate($brand-primary, 25%) !default;
$bubble-target-shadow-alpha: .2 !default;
//== Badges
@@ -709,3 +786,67 @@ $login-form-adjustments-map: (
$width-sm: $screen-sm - ($padding-side * 2) !default;
$width-md: $screen-md - ($padding-side * 2) !default;
$width-lg: $screen-lg - ($padding-side * 2) !default;
//== Redmine Agile plugin
// https://www.redmineup.com/pages/plugins/agile
//
$agile-board-background: $gray-100 !default;
$agile-issue-card-margin: 8px 10px !default;
$agile-issue-card-padding: 7px !default;
$agile-issue-card-border: $gray-500;
$agile-issue-card-border-width: 0 0 0 5px;
$agile-issue-card-border-radius: $border-radius-large !default;
$agile-issue-card-background: $white !default;
$agile-issue-card-color: $text-color !default;
$agile-issue-card-closed-background: $gray-300 !default;
$agile-issue-card-default-color-map: (
bk-green: (
border: $green,
background: scale-color($green, $saturation: -5%, $lightness: 80%),
link: shade($green, 700),
),
bk-blue: (
border: $blue,
background: scale-color($blue, $saturation: 50%, $lightness: 80%),
link: shade($blue, 700),
),
bk-turquoise: (
border: $teal,
background: scale-color($teal, $saturation: -5%, $lightness: 80%),
link: shade($teal, 700),
),
bk-lightgreen: (
border: adjust-color($green, $hue: -45deg),
background: scale-color(adjust-color($green, $hue: -45deg), $saturation: 75%, $lightness: 80%),
link: shade(adjust-color($green, $hue: -45deg), 700),
),
bk-yellow: (
border: scale-color($yellow, $hue: 2deg),
background: scale-color($yellow, $hue: 2deg, $saturation: 75%, $lightness: 80%),
link: shade($yellow, 700),
),
bk-orange: (
border: $orange,
background: scale-color($orange, $saturation: 75%, $lightness: 80%),
link: shade($orange, 700),
),
bk-red: (
border: $red,
background: scale-color($red, $saturation: 75%, $lightness: 85%),
link: shade($red, 700),
),
bk-purple: (
border: $purple,
background: scale-color($purple, $saturation: 75%, $lightness: 85%),
link: shade($purple, 700),
),
bk-gray: (
border: $gray-600,
background: $gray-300,
link: $link-color,
),
) !default;
$agile-issue-card-custom-color-map: () !default;
$agile-issue-card-color-map: map-merge($agile-issue-card-default-color-map, $agile-issue-card-custom-color-map);

View File

@@ -1,4 +1,5 @@
@import "variables";
@import "functions";
@import "mixins";
@import "lib/normalize";

View File

@@ -8,7 +8,7 @@
list-style-type: none;
> a:not(.icon-only) {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
@@ -27,7 +27,7 @@
a {
display: inline-block;
padding-left: 5px + 20px;
padding-left: 5px + $icon-width;
background-position: 0 center;
}
}
@@ -61,6 +61,13 @@ table.permissions {
//== Workflows
//
.controller-workflows {
table.list,
fieldset.collapsible {
margin-bottom: $line-height-computed;
}
}
table.transitions {
td.enabled {
background: $state-success;
@@ -87,6 +94,29 @@ table.fields_permissions {
}
//== Custom fields -> Issues -> Key values
//
#custom_field_enumerations {
padding-left: 0;
list-style: none;
li {
min-height: $input-height-base;
padding: 1px 0;
.sort-handle,
label {
line-height: $input-height-base;
}
label input {
vertical-align: baseline;
}
}
}
//== Settings labels
//

View File

@@ -110,6 +110,16 @@ table {
p {
margin: 0;
}
form {
p {
margin-bottom: ($line-height-computed / 2);
&:last-child {
margin-bottom: 0;
}
}
}
}
ul,

View File

@@ -48,12 +48,8 @@ form {
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
+ a {
display: inline-block;
~ a {
margin-right: 2px;
padding-top: $btn-padding-vertical + 1px;
padding-bottom: $btn-padding-vertical + 1px;
line-height: $line-height-base;
+ a {
margin-left: 2px;
@@ -144,6 +140,37 @@ p.buttons,
}
//== Submit + cancel
//
#issue-form,
.mypage-box,
.journal,
.edit_news,
.edit_content,
.edit_time_entry,
.edit_membership {
input[type="submit"] + a {
margin-left: ceil($btn-padding-horizontal-small / 2);
}
}
//== Apply + clear
//
form {
input,
button,
select {
~ a {
margin-left: ceil($btn-padding-horizontal-small / 2);
line-height: $input-height-base;
}
}
}
//== Action buttons group
//
@@ -187,6 +214,10 @@ p.buttons {
min-width: 130px;
}
label + & {
margin-left: $padding-side;
}
@at-root span#{&} {
> span {
display: inline-block;

View File

@@ -62,10 +62,10 @@
border-radius: $border-radius-base - 1px;
&.icon {
padding-left: 20px + $btn-padding-horizontal-small;
padding-left: $icon-width + $btn-padding-horizontal-small;
&::before {
width: 20px;
width: $icon-width;
margin-top: 3px;
float: left;
text-align: center;
@@ -94,8 +94,8 @@
color: $pagination-color;
text-align: center;
> .icon-only::before {
margin: 0 1px;
> .icon-only {
margin: 0 -4px;
}
&:hover,

View File

@@ -7,27 +7,29 @@
//
a.collapsible,
a.collapsible.icon,
.collapsible > legend {
color: $link-color;
cursor: pointer;
user-select: none;
&:hover {
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: none;
}
&::before {
content: "";
display: inline-block;
@include fa-icon;
content: $fa-var-chevron-down;
position: relative;
top: -1px;
width: 0;
height: 0;
top: -.1em;
width: 1em;
height: 1em;
margin-right: 3px;
transform: rotate(0);
border-top: 6px solid;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
color: $gray-600;
font-size: 12px;
vertical-align: middle;
@if $collapsible-animation-time > 0 {
@@ -37,6 +39,7 @@ a.collapsible,
}
a.collapsible.collapsed,
a.collapsible.icon-collapsed,
.collapsible.collapsed > legend {
&::before {
transform: rotate(-90deg);
@@ -115,12 +118,13 @@ img {
.filecontent-container {
position: relative;
min-height: 200px;
margin-bottom: 20px;
}
.filecontent-container > .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
margin-bottom: $line-height-computed;
> .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
}
}
//== Responsive autoscroll
@@ -249,6 +253,10 @@ img {
@include check;
display: block;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
.roles-selection {
@@ -276,11 +284,13 @@ p.subtitle {
}
.block-receiver {
box-sizing: border-box;
min-height: 20px;
margin: $padding-side / -2;
margin-bottom: $line-height-computed;
padding: $padding-side / 2;
outline: 2px dashed $gray-600;
.dragging & {
outline: 2px dashed $gray-600;
}
}
.mypage-box {
@@ -332,22 +342,6 @@ a.close-icon {
// For Redmine 3.4+
#my-page {
.block-receiver {
box-sizing: border-box;
margin: 0;
padding: 0;
outline: none;
}
&.dragging .block-receiver {
box-sizing: border-box;
min-height: 20px;
margin: $padding-side / -2;
margin-bottom: $line-height-computed;
padding: $padding-side / 2;
outline: 2px dashed $gray-600;
}
.mypage-box {
> .contextual {
transition: opacity $transition-time;
@@ -609,6 +603,14 @@ div#roadmap {
}
}
header {
display: block;
> h3 {
display: inline-block;
}
}
header > h3,
h3.version {
margin-bottom: 0;
@@ -661,16 +663,22 @@ div#version-summary {
//== Ajax indicator
//
@keyframes spin {
to { transform: rotate(360deg); }
}
#ajax-indicator {
@include nice-shadow(3);
position: fixed;
z-index: 100;
top: 50%;
left: 50%;
box-sizing: border-box;
width: 200px;
margin: (($line-height-computed + $padding-large-vertical * 2 + 1px * 2) / -2) ((200px + $padding-large-horizontal * 2 + 1px * 2) / -2);
margin: (($padding-large-vertical * 2 + 1px * 2 + $line-height-computed) / -2) (200px / -2);
padding: $padding-large-vertical $padding-large-horizontal;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
opacity: .9;
background-color: $highlight-bg;
color: $highlight-text;
@@ -678,11 +686,21 @@ div#version-summary {
text-align: center;
span {
padding-left: 26px;
background-image: url("../../../images/loading.gif");
background-repeat: no-repeat;
background-position: 0% 40%;
vertical-align: bottom;
line-height: $line-height-computed;
&::before {
content: "";
display: inline-block;
box-sizing: border-box;
width: $line-height-computed;
height: $line-height-computed;
margin-right: $line-height-computed / 2;
animation: spin 1s linear infinite;
border: 3px solid rgba($highlight-text, .3);
border-radius: 50%;
border-top-color: $highlight-text;
vertical-align: bottom;
}
}
}
@@ -746,15 +764,14 @@ div.table-list.boards {
}
.message {
border: 1px solid $gray-400;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
background: $gray-100;
background: $bubble-bg;
> h4,
> p {
margin-bottom: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-bottom: 1px solid mix($gray-400, $gray-100, 50%);
color: $gray-700;
font-size: $font-size-list;
@@ -768,7 +785,8 @@ div.table-list.boards {
}
.wiki {
padding: $bubble-padding-horizontal;
padding: $panel-body-padding;
border-top: 1px solid $bubble-border;
border-radius: 0 0 $panel-border-radius $panel-border-radius;
background: $body-bg;
}
@@ -776,17 +794,16 @@ div.table-list.boards {
.contextual {
position: relative;
z-index: 1;
margin-top: $padding-small-vertical;
margin-right: $bubble-padding-vertical;
padding: ($bubble-padding-vertical - 1px) $bubble-padding-vertical 0 0;
a {
margin-left: ceil($bubble-padding-vertical / 2);
display: inline-block;
}
}
.attachments {
padding: $bubble-padding-horizontal;
border-top-color: mix($gray-400, $gray-100, 50%);
border-top-color: $bubble-border;
}
}
@@ -820,12 +837,12 @@ div.table-list.boards {
margin-top: 1px;
margin-left: 2px;
border-width: 6px;
border-right-color: $panel-bg;
border-right-color: $bubble-bg;
}
&::before {
border-width: 7px;
border-right-color: $panel-border;
border-right-color: $bubble-border;
}
}
@@ -904,6 +921,10 @@ div.table-list.boards {
.author {
color: $gray-700;
.flyout-menu & {
color: inherit;
}
.user {
font-weight: $font-weight-bold;
}

View File

@@ -26,6 +26,8 @@ form {
}
}
span.field label,
span.field ~ label,
.box label {
line-height: $line-height-base;
@@ -121,7 +123,7 @@ input[type="search"] {
input[type="radio"],
input[type="checkbox"] {
margin: 4px 1px 0 0;
margin: 4px 3px 0 5px;
margin-top: 1px \9; // IE8-9
line-height: normal;
vertical-align: top;
@@ -264,6 +266,7 @@ em.info {
color: $gray-700;
font-size: $font-size-small;
font-style: normal;
line-height: $line-height-base;
}
@@ -307,6 +310,11 @@ em.info {
display: block;
padding-top: $input-padding-vertical + 1px;
line-height: $line-height-base;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: 0;
}
}
}
@@ -350,6 +358,12 @@ em.info {
float: none;
text-align: left;
cursor: pointer;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: -$check-input-gutter;
float: left;
}
}
&.inline {
@@ -363,11 +377,13 @@ em.info {
> input[type="checkbox"],
> input[type="radio"] {
margin-top: $check-input-margin-vertical;
margin-left: 0;
}
~ input[type="checkbox"],
~ input[type="radio"] {
margin-top: $check-input-margin-btn-v;
margin-left: 0;
}
}
}
@@ -386,6 +402,10 @@ label.inline {
margin-left: -$check-input-gutter;
float: left;
}
input + & {
padding-left: 0;
}
}
label.block {
@@ -404,7 +424,6 @@ label.block {
label[for="issue_description"] + a {
display: inline-block;
margin-top: $input-padding-vertical + 1px;
img {
vertical-align: middle;
@@ -608,6 +627,10 @@ label[for="closed"] {
label {
@include check-list;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
#watchers_inputs {
@@ -723,7 +746,9 @@ fieldset#filters {
select,
label,
.icon,
.icon-only {
.icon-only,
> span > a {
line-height: inherit;
vertical-align: middle;
}
}

View File

@@ -53,6 +53,10 @@ table.gantt-table {
.gantt_hdr {
border-left: 1px solid $gray-500 !important; // stylelint-disable-line declaration-no-important
}
+ td {
padding: 0;
}
}
.gantt_subjects {
@@ -242,6 +246,7 @@ td.gantt_selected_column .gantt_hdr,
width: 270px;
padding: $padding-base-vertical;
border: $tooltip-border-width solid $tooltip-border;
border-radius: $border-radius-small;
background-color: $tooltip-bg;
color: $tooltip-text;
font-size: $font-size-small;

View File

@@ -17,6 +17,120 @@
}
}
$icon-map: (
icon-add: $fa-var-plus-square,
icon-edit: $fa-var-pencil,
icon-copy: $fa-var-copy,
icon-duplicate: $fa-var-clipboard,
icon-del: $fa-var-trash,
icon-move: $fa-var-arrows,
icon-save: $fa-var-save,
icon-download: $fa-var-download,
icon-cancel: $fa-var-ban,
icon-multiple: $fa-var-plus-circle,
icon-folder: $fa-var-folder,
icon-package: $fa-var-cube,
icon-user: $fa-var-user,
icon-project: $fa-var-cube,
icon-projects: $fa-var-cubes,
icon-help: $fa-var-info-circle,
icon-attachment: $fa-var-paperclip,
icon-history: $fa-var-history,
icon-time-entry: $fa-var-clock-o,
icon-time: $fa-var-clock-o,
icon-time-add: $fa-var-clock-o,
icon-stats: $fa-var-line-chart,
icon-warning: $fa-var-warning,
icon-error: $fa-var-exclamation,
icon-fav: $fa-var-star,
icon-fav-off: $fa-var-star-o,
icon-heart: $fa-var-heart,
icon-heart-off: $fa-var-heart-o,
icon-reload: $fa-var-refresh,
icon-locked: $fa-var-lock,
icon-lock: $fa-var-lock,
icon-unlock: $fa-var-unlock,
icon-checked: $fa-var-check,
icon-details: $fa-var-search-plus,
icon-report: $fa-var-pie-chart,
icon-comments: $fa-var-comment,
icon-comment: $fa-var-comment,
icon-summary: $fa-var-file-text,
icon-server-authentication: $fa-var-key,
icon-issue: $fa-var-ticket,
icon-zoom-in: $fa-var-search-plus,
icon-zoom-out: $fa-var-search-minus,
icon-magnifier: $fa-var-search,
icon-passwd: $fa-var-key,
icon-arrow-right: $fa-var-arrow-right,
icon-test: $fa-var-arrow-circle-right,
icon-sticky: $fa-var-thumb-tack,
icon-email: $fa-var-envelope,
icon-email-disabled: $fa-var-envelope-o,
icon-email-add: $fa-var-envelope,
icon-ok: $fa-var-check,
icon-not-ok: $fa-var-times,
icon-link-break: $fa-var-chain-broken,
icon-list: $fa-var-list-ul,
icon-close: $fa-var-times-circle,
icon-settings: $fa-var-cog,
icon-group: $fa-var-users,
icon-groupnonmember: $fa-var-users,
icon-groupanonymous: $fa-var-users,
icon-roles: $fa-var-eye,
icon-issue-edit: $fa-var-edit,
icon-workflows: $fa-var-sitemap,
icon-custom-fields: $fa-var-edit,
icon-plugins: $fa-var-puzzle-piece,
icon-news: $fa-var-newspaper-o,
icon-issue-closed: $fa-var-ticket,
icon-issue-note: $fa-var-comment,
icon-changeset: $fa-var-upload,
icon-message: $fa-var-comment,
icon-reply: $fa-var-comment-o,
icon-wiki-page: $fa-var-file-text-o,
icon-document: $fa-var-file-text,
icon-add-bullet: $fa-var-plus-circle,
icon-shared: $fa-var-link,
icon-actions: $fa-var-ellipsis-h,
icon-sort-handle: $fa-var-arrows-v,
icon-expended: $fa-var-chevron-down,
icon-collapsed: $fa-var-chevron-right,
icon-bookmark: $fa-var-bookmark,
icon-bookmark-off: $fa-var-bookmark-o,
icon-sorted-asc: $fa-var-sort-amount-asc,
icon-sorted-desc: $fa-var-sort-amount-desc,
icon-toggle-plus: $fa-var-plus-square,
icon-toggle-minus: $fa-var-minus-square,
icon-clear-query: $fa-var-times,
icon-import: $fa-var-cloud-upload,
// Plugin icons
icon-call: $fa-var-phone,
icon-contact: $fa-var-vcard,
icon-erase: $fa-var-eraser,
icon-facebook: $fa-var-facebook-square,
icon-fullscreen: $fa-var-arrows-alt,
icon-linkedin: $fa-var-linkedin-square,
icon-meeting: $fa-var-calendar-check-o,
icon-merge: $fa-var-code-fork,
icon-money-dollar: $fa-var-usd,
icon-money-euro: $fa-var-eur,
icon-money-pound: $fa-var-gbp,
icon-money-yen: $fa-var-jpy,
icon-move-bottom: $fa-var-angle-double-down,
icon-move-down: $fa-var-angle-down,
icon-move-top: $fa-var-angle-double-up,
icon-move-up: $fa-var-angle-up,
icon-phone: $fa-var-phone,
icon-skype: $fa-var-skype,
icon-tags: $fa-var-tags,
icon-twitter: $fa-var-twitter-square,
icon-vcard: $fa-var-vcard,
banner-icon-edit: $fa-var-edit,
banner-icon-off: $fa-var-times,
);
@keyframes spin {
0% {
transform: rotate(0deg);
@@ -35,134 +149,68 @@ table.list .buttons > a::before {
//== Buttons icons
//
.icon {
.icon,
.icon-only:not(.toggle-multiselect) {
@extend %fa-icon;
padding-left: 20px;
padding-left: $icon-width;
background-repeat: no-repeat;
background-position: 0% 50%;
&::before {
margin-left: -20px;
margin-left: -$icon-width;
}
}
.icon-only {
@extend %fa-icon;
font-size: 0;
display: inline-block;
width: 0;
overflow: hidden;
vertical-align: top;
white-space: nowrap;
@at-root a#{&} {
// stylelint-disable declaration-no-important
display: inline;
width: auto !important;
height: auto !important;
padding-left: 0 !important;
font-size: 0 !important;
}
&::before {
font-size: $font-size-base;
width: $icon-width;
text-align: center;
}
}
.icon-add::before { content: $fa-var-plus-square; }
.icon-edit::before { content: $fa-var-pencil; }
.icon-copy::before { content: $fa-var-copy; }
.icon-duplicate::before { content: $fa-var-clipboard; }
.icon-del::before { content: $fa-var-trash; }
.icon-move::before { content: $fa-var-arrows; }
.icon-save::before { content: $fa-var-save; }
.icon-download::before { content: $fa-var-download; }
.icon-cancel::before { content: $fa-var-ban; }
.icon-multiple::before { content: $fa-var-plus-circle; }
.icon-folder::before { content: $fa-var-folder; }
.open .icon-folder::before { content: $fa-var-folder-open; }
.icon-package::before { content: $fa-var-cube; }
.icon-user::before { content: $fa-var-user; }
.icon-project::before { content: $fa-var-cube; }
.icon-projects::before { content: $fa-var-cubes; }
.icon-help::before { content: $fa-var-info-circle; }
.icon-attachment::before { content: $fa-var-paperclip; }
.icon-history::before { content: $fa-var-history; }
.icon-time-entry::before { content: $fa-var-clock-o; }
.icon-time::before { content: $fa-var-clock-o; }
.icon-time-add::before { content: $fa-var-clock-o; }
.icon-stats::before { content: $fa-var-line-chart; }
.icon-warning::before { content: $fa-var-warning; }
.icon-error::before { content: $fa-var-exclamation; }
.icon-fav::before { content: $fa-var-star; color: $orange; }
.icon-fav-off::before { content: $fa-var-star-o; }
.icon-heart::before { content: $fa-var-heart; color: $pink; }
.icon-heart-off::before { content: $fa-var-heart-o; }
.icon-reload::before { content: $fa-var-refresh; }
.icon-locked::before { content: $fa-var-lock; }
.icon-lock::before { content: $fa-var-lock; }
.icon-unlock::before { content: $fa-var-unlock; }
.icon-checked::before { content: $fa-var-check; }
.icon-details::before { content: $fa-var-search-plus; }
.icon-report::before { content: $fa-var-pie-chart; }
.icon-comments::before { content: $fa-var-comment; }
.icon-comment::before { content: $fa-var-comment; }
.icon-summary::before { content: $fa-var-file-text; }
.icon-server-authentication::before { content: $fa-var-key; }
.icon-issue::before { content: $fa-var-ticket; }
.icon-zoom-in::before { content: $fa-var-search-plus; }
.icon-zoom-out::before { content: $fa-var-search-minus; }
.icon-passwd::before { content: $fa-var-key; }
.icon-test::before { content: $fa-var-arrow-circle-right; }
.icon-phone::before { content: $fa-var-phone; }
.icon-skype::before { content: $fa-var-skype; }
.icon-facebook::before { content: $fa-var-facebook-square; }
.icon-linkedin::before { content: $fa-var-linkedin-square; }
.icon-twitter::before { content: $fa-var-twitter-square; }
.icon-magnifier::before { content: $fa-var-search; }
.icon-email::before { content: $fa-var-envelope; }
.icon-email-disabled::before { content: $fa-var-envelope-o; }
.icon-email-add::before { content: $fa-var-envelope; }
.icon-move-up::before { content: $fa-var-angle-up; }
.icon-move-top::before { content: $fa-var-angle-double-up; }
.icon-move-down::before { content: $fa-var-angle-down; }
.icon-move-bottom::before { content: $fa-var-angle-double-down; }
.icon-ok::before { content: $fa-var-check; }
.icon-not-ok::before { content: $fa-var-times; }
.icon-link-break::before { content: $fa-var-chain-broken; }
.icon-list::before { content: $fa-var-list-ul; }
.icon-sticky::before { content: $fa-var-thumb-tack; }
.icon-arrow-right::before { content: $fa-var-arrow-right; }
.icon-close::before { content: $fa-var-times-circle; }
.icon-close:hover::before { content: $fa-var-times-circle-o; }
.icon-settings::before { content: $fa-var-cog; }
.icon-group::before { content: $fa-var-users; }
.icon-groupnonmember::before { content: $fa-var-users; }
.icon-groupanonymous::before { content: $fa-var-users; }
.icon-roles::before { content: $fa-var-eye; }
.icon-issue-edit::before { content: $fa-var-edit; }
.icon-workflows::before { content: $fa-var-sitemap; }
.icon-custom-fields::before { content: $fa-var-edit; }
.icon-plugins::before { content: $fa-var-puzzle-piece; }
.icon-news::before { content: $fa-var-newspaper-o; }
.icon-issue-closed::before { content: $fa-var-ticket; }
.icon-issue-note::before { content: $fa-var-comment; }
.icon-changeset::before { content: $fa-var-upload; }
.icon-message::before { content: $fa-var-comment; }
.icon-reply::before { content: $fa-var-comment-o; }
.icon-wiki-page::before { content: $fa-var-file-text-o; }
.icon-document::before { content: $fa-var-file-text; }
.icon-project::before { content: $fa-var-cube; }
.icon-add-bullet::before { content: $fa-var-plus-circle; }
.icon-shared::before { content: $fa-var-link; }
.icon-actions::before { content: $fa-var-ellipsis-h; }
.icon-sort-handle::before { content: $fa-var-arrows-v; }
.icon-expended::before { content: $fa-var-chevron-down; }
.icon-collapsed::before { content: $fa-var-chevron-right; }
.icon-bookmark::before { content: $fa-var-bookmark; }
.icon-bookmark-off::before { content: $fa-var-bookmark-o; }
.icon-sorted-asc::before { content: $fa-var-sort-amount-asc; }
.icon-sorted-desc::before { content: $fa-var-sort-amount-desc; }
.icon-toggle-plus::before { content: $fa-var-plus-square; }
.icon-toggle-minus::before { content: $fa-var-minus-square; }
.icon-clear-query::before { content: $fa-var-times; }
.icon-import::before { content: $fa-var-cloud-upload; }
// A empty icon should behave more like icon-only
a.icon:empty {
display: inline-block;
}
$icons-selector: ();
@each $class, $icon in $icon-map {
$icons-selector: append($icons-selector, unquote(".#{$class}"), "comma");
.#{$class} {
&::before {
content: $icon;
@if $class == "icon-fav" {
color: $orange;
} @else if $class == "icon-heart" {
color: $pink;
}
}
@if $class == "icon-close" {
&:hover::before {
content: $fa-var-times-circle-o;
}
} @else if $class == "icon-folder" {
.open &::before {
content: $fa-var-folder-open;
}
}
}
}
#{$icons-selector} {
&.icon {
background-image: none;
}
}
//== Checkbox toggler
//
@@ -205,7 +253,7 @@ a.icon-del {
.icon-folder,
.icon-file {
&::before {
width: 16px;
width: $icon-width;
text-align: center;
}
}
@@ -253,12 +301,11 @@ a.icon-del {
.icon-expended,
.icon-collapsed {
&::before {
width: 1em;
text-align: center;
}
&.icon {
padding-left: 20px;
padding-left: $icon-width;
}
&.expander {
@@ -266,6 +313,10 @@ a.icon-del {
}
}
.icon-zoom-in + .icon-zoom-out {
margin-left: $padding-small-vertical;
}
//== Administration menu sections
//
@@ -285,19 +336,19 @@ a.icon-del {
#admin-menu {
#admin-index > & {
a {
padding-left: 5px + 20px;
padding-left: 5px + $icon-width;
}
}
li {
> a {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
&::before {
display: inline-block;
width: 20px;
width: $icon-width;
margin: 0;
margin-left: -(5px + 20px);
margin-left: -(5px + $icon-width);
padding: 0;
color: $gray-700;
text-align: center;
@@ -398,8 +449,6 @@ a.icon-del {
&::before {
content: $fa-var-arrows-v;
width: 16px;
margin: 0;
}
&.ajax-loading {
@@ -426,8 +475,8 @@ div.projects h3 {
color: $gray-900;
&::before {
width: 1em;
margin-right: .5em;
width: $icon-width;
margin-right: $padding-small-vertical;
transform: translateY(-.1em);
color: $gray-700;
text-align: center;
@@ -437,7 +486,7 @@ div.projects h3 {
h3.version::before { content: $fa-var-cube; }
h3.comments::before { content: $fa-var-comments; }
div.issues h3::before { content: $fa-var-ticket; }
div.members h3::before { content: $fa-var-user; }
div.members h3::before { content: $fa-var-users; }
div.news h3::before { content: $fa-var-newspaper-o; }
div.projects h3::before { content: $fa-var-cubes; }

View File

@@ -88,7 +88,8 @@
margin-bottom: $line-height-computed;
}
> hr {
> hr,
.attribute > hr {
@if $clean-issues {
margin: $issue-padding 0;
} @else {
@@ -126,7 +127,42 @@
}
}
.attributes {
@if $color-status {
.attributes td.status,
.attributes .attribute.status .value {
display: inline-block;
width: auto;
min-width: 1em;
margin-top: $issue-attribute-padding-v;
padding: 1px $table-cell-padding;
border-radius: $border-radius-base;
background-color: $status-default-bg;
color: $status-default-color;
font-size: $font-size-small;
font-weight: $font-weight-bold;
text-align: center;
text-transform: uppercase;
}
@each $status, $status-colors in $status-colors-map {
&.#{$status} {
.attributes td.status,
.attributes .attribute.status .value {
background-color: map-get($status-colors, background);
color: map-get($status-colors, color);
}
}
}
}
@if $priority-icon {
.attributes td.priority,
.attribute.priority .value {
@include priority-icon-base;
}
}
table.attributes {
width: 100%;
th,
@@ -148,71 +184,70 @@
}
@media screen and (min-width: $screen-md-min) {
> tbody > tr {
> th,
> td {
width: 25%;
}
}
}
@media screen and (min-width: $screen-lg-min) {
width: auto;
> tbody > tr {
> th {
width: 14em;
width: $label-width;
}
> td {
min-width: $label-width;
}
}
}
}
div.attributes {
@if $css-grid-layout {
display: grid;
grid-gap: 0 $padding-side;
grid-template-columns: auto;
@media screen and (min-width: $screen-lg-min) {
grid-template-columns: repeat(2, minmax(auto, max-content));
.attribute .value {
min-width: $label-width;
}
}
.splitcontent {
display: contents;
&::after {
content: none;
}
}
.splitcontentleft {
width: auto;
padding-right: 0;
padding-left: 0;
float: none;
}
} @else {
@media screen and (min-width: $screen-lg-min) {
.splitcontentleft {
width: auto;
min-width: 16em;
}
.attribute .value {
min-width: $label-width;
}
}
}
}
@if $color-status {
.attributes td.status,
.attribute.status .value {
display: inline-block;
width: auto;
min-width: 1em;
margin-top: $issue-attribute-padding-v;
padding: 1px $table-cell-padding;
border-radius: $border-radius-base;
background-color: $status-default-bg;
color: $status-default-color;
font-size: $font-size-small;
font-weight: $font-weight-bold;
text-align: center;
text-transform: uppercase;
}
.splitcontent {
.attribute {
padding-left: $label-width;
@each $status, $status-colors in $status-colors-map {
&.#{$status} {
.attributes td.status,
.attribute.status .value {
background-color: map-get($status-colors, background);
color: map-get($status-colors, color);
}
.label {
width: $label-width;
margin-left: -$label-width;
}
}
}
@if $priority-icon {
.attributes td.priority,
.attribute.priority .value {
@include priority-icon-base;
}
}
.splitcontentleft {
@media screen and (min-width: $screen-lg-min) {
width: auto;
}
}
.attribute {
@extend %clearfix;
@@ -222,21 +257,20 @@
}
.label {
width: 25%;
box-sizing: border-box;
float: left;
color: $gray-700;
@media screen and (min-width: $screen-lg-min) {
width: 14em;
}
}
.value {
color: $gray-950;
@media screen and (min-width: $screen-lg-min) {
width: auto;
min-width: 14em + 16em;
&:empty::after {
content: "-";
}
*:last-child {
margin-bottom: 0;
}
}
}
@@ -256,6 +290,11 @@
padding: $issue-padding;
border-top: 1px solid $issue-border;
}
// Restore margin below buttons in reverse chronological mode
+ div[style] + .contextual {
margin-bottom: $line-height-computed;
}
}
div.fileover {
@@ -323,6 +362,7 @@ div.thumbnails {
top: 0;
margin: 3px;
border-radius: $border-radius-base - 1;
vertical-align: middle;
}
}
@@ -354,6 +394,10 @@ div.thumbnails {
td.buttons {
width: 3em;
vertical-align: middle;
a:not(:first-child) {
margin-left: 2px;
}
}
}
}
@@ -390,8 +434,6 @@ div.thumbnails {
}
#history {
overflow: auto;
> .tabs {
margin-bottom: $line-height-computed + 2px * 2;
}
@@ -423,64 +465,87 @@ div.thumbnails {
.journal {
position: relative;
margin-bottom: $line-height-computed + 2px * 2;
margin-bottom: $line-height-computed;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
@if $use-gravatars {
margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
}
&::before {
content: "";
display: block;
position: absolute;
z-index: -1;
top: -($line-height-computed + 2px);
left: 22px;
width: 4px;
height: $line-height-computed;
background-color: darken($body-bg, 5%);
}
&.changeset {
h4 + p {
margin-bottom: 0;
padding-bottom: $bubble-padding-vertical;
background-color: $bubble-bg;
font-size: $font-size-list;
.tabs + &::before {
display: none;
> a:first-child {
font-family: $font-family-monospace;
font-weight: $font-weight-bold;
}
}
}
> div {
border: 1px solid $issue-border;
border-radius: $panel-border-radius;
&:target {
border-color: darken($issue-border, 25%);
$border: $bubble-target-border;
$shadow: rgba($bubble-target-border, $bubble-target-shadow-alpha);
position: relative;
margin-top: -($responsive-header-height + 4px);
padding-top: ($responsive-header-height + 4px);
&::before {
content: "";
display: block;
position: absolute;
top: ($responsive-header-height + 4px);
right: 0;
bottom: 0;
left: 0;
border-radius: $panel-border-radius - 1px;
box-shadow: 0 0 0 1px $border, 0 0 0 4px $shadow;
pointer-events: none;
}
@if $use-gravatars {
h4::before {
border-right-color: darken($issue-border, 25%);
> h4::before {
border-right-color: $border;
filter: drop-shadow(-4px 0 0 $shadow);
}
}
@media screen and (min-width: $redmine-responsive-min) {
margin-top: -$line-height-computed;
padding-top: $line-height-computed;
&::before {
top: $line-height-computed;
}
}
}
}
// For Redmine 4.0+
> div > .contextual {
> div > .contextual,
> .contextual {
position: relative;
z-index: 1;
margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
font-size: $font-size-list;
> .journal-actions {
padding-right: $issue-attribute-padding-h;
a {
opacity: $icon-opacity;
> a {
opacity: $icon-opacity;
&:hover {
opacity: $icon-hover-opacity;
}
&:hover {
opacity: $icon-hover-opacity;
}
}
> a.journal-link {
padding-left: $issue-attribute-padding-h;
opacity: 1;
color: $gray-700;
&::before {
@@ -489,13 +554,15 @@ div.thumbnails {
}
}
> div > h4 {
> div > h4,
> h4 {
margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-radius: $panel-border-radius $panel-border-radius 0 0;
background-color: $issue-bg;
background-color: $bubble-bg;
color: $gray-700;
font-size: $font-size-list;
font-weight: $font-weight-normal;
a {
color: $gray-900;
@@ -511,7 +578,8 @@ div.thumbnails {
}
@if $use-gravatars {
> div > h4 {
> div > h4,
> h4 {
position: relative;
&::before,
@@ -533,12 +601,12 @@ div.thumbnails {
margin-top: 1px;
margin-left: 2px;
border-width: 6px;
border-right-color: $issue-bg;
border-right-color: $bubble-bg;
}
&::before {
border-width: 7px;
border-right-color: $issue-border;
border-right-color: $bubble-border;
}
> .gravatar {
@@ -550,35 +618,27 @@ div.thumbnails {
}
}
> p {
padding-right: $bubble-padding-horizontal;
padding-left: $bubble-padding-horizontal;
&:empty {
margin-bottom: 0;
}
}
form,
.wiki,
.details {
border-top: 1px solid $bubble-border;
}
.details {
margin: 0;
padding: $bubble-padding-vertical 0;
padding-left: $bubble-padding-horizontal * 2.5;
list-style: none;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
padding-left: $bubble-padding-horizontal + 20px;
font-size: $font-size-list;
li {
position: relative;
margin-bottom: $bubble-padding-vertical / 2;
&:last-child {
margin-bottom: 0;
}
&::before {
content: "";
display: block;
position: absolute;
top: 5px;
left: -($bubble-padding-horizontal + 6px / 2);
width: 6px;
height: 6px;
border-radius: 50%;
background-color: $gray-600;
}
}
img {
margin: 0 0 -3px 4px;
}
@@ -593,15 +653,13 @@ div.thumbnails {
}
}
.wiki,
form {
.wiki {
padding: $issue-padding;
border-top: 1px solid $issue-border;
}
form {
padding-top: 5px;
background-color: $gray-100;
padding: $bubble-padding-vertical $bubble-padding-horizontal $bubble-padding-horizontal;
background-color: $bubble-bg;
> p {
margin-bottom: $issue-padding;
@@ -611,6 +669,12 @@ div.thumbnails {
}
}
> label {
display: inline-block;
margin-bottom: $line-height-computed / 2;
line-height: $line-height-base;
}
> .wiki {
margin: 0 (-$issue-padding) (-$issue-padding);
padding: 0;
@@ -645,12 +709,10 @@ div.thumbnails {
}
.private-notes {
> div {
border-left-color: $brand-warning;
border-left-color: $brand-warning;
h4::before {
border-right-color: $brand-warning;
}
> div > h4::before {
border-right-color: $brand-warning;
}
}
@@ -678,22 +740,29 @@ span.private {
@media screen and (min-width: $screen-md-min) {
width: 45%;
margin-left: $padding-side;
float: right;
+ #history {
margin-right: 45%;
padding-right: $padding-side;
}
}
@media screen and (min-width: $screen-lg-min) {
width: 33%;
min-width: 28em;
+ #history {
margin-right: 33%;
}
}
div.changeset {
margin-top: $line-height-computed / 2 + 2px * 2;
padding: 0;
overflow: hidden;
border: 1px solid $issue-border;
border: 1px solid $bubble-border;
border-radius: $panel-border-radius;
background-color: $issue-bg;
background-color: $bubble-bg;
font-size: $font-size-list;
&:first-of-type {
@@ -706,7 +775,7 @@ span.private {
padding: $padding-base-vertical $padding-base-horizontal;
color: $gray-700;
> a {
> a:first-child {
font-family: $font-family-monospace;
font-weight: $font-weight-bold;
}
@@ -726,7 +795,7 @@ span.private {
> .wiki {
padding: $padding-base-vertical $padding-base-horizontal;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
border-top: 1px solid $bubble-border;
background-color: $body-bg;
}
}

View File

@@ -127,6 +127,7 @@
}
.ui-sortable-helper {
background-color: $body-bg;
@include nice-shadow(4);
}
@@ -138,6 +139,23 @@
@include nice-shadow(2);
padding: 3px;
border-radius: $panel-border-radius;
.ui-menu-item {
&.ui-state-focus,
&.ui-state-active {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
a {
color: $pagination-hover-color;
}
.ui-icon {
background-image: url("../../../stylesheets/jquery/images/ui-icons_222222_256x240.png");
}
}
}
}
.ui-menu-item {
@@ -298,3 +316,17 @@ img.ui-datepicker-trigger {
}
}
}
.ui-tooltip {
@include nice-shadow(1);
padding: $padding-small-vertical $padding-small-horizontal;
border: 0 none;
background: $black;
color: $white;
font-size: $font-size-small-px;
pointer-events: none;
&.qtip {
pointer-events: initial;
}
}

View File

@@ -228,6 +228,12 @@ div.jstElements {
&::before { content: $fa-var-code; }
}
.jstb_table {
@extend %jstb-icon;
&::before { content: $fa-var-table; }
}
button.jstb_help {
@extend %jstb-icon;
color: $link-color;

View File

@@ -29,6 +29,12 @@ table.list {
color: $gray-700;
vertical-align: bottom;
@if $table-list-header-bg == $body-bg {
@at-root .box & {
background-color: $panel-bg;
}
}
a {
color: $gray-900;
}
@@ -46,7 +52,7 @@ table.list {
vertical-align: top;
&.icon {
padding-left: $table-cell-padding + 20px;
padding-left: $table-cell-padding + $icon-width;
}
&.id,
@@ -80,6 +86,12 @@ table.list {
padding-right: $table-cell-padding;
padding-left: $table-cell-padding;
@if (parse-length($table-list-item-border, right) == 0) {
&:first-child {
padding-right: 0;
}
}
input {
margin: 2px 0 0;
}
@@ -127,10 +139,10 @@ table.list {
white-space: nowrap;
a {
padding-right: 5px;
margin-right: $padding-small-vertical;
&.icon-only {
padding: 0;
margin-right: 0;
}
}
@@ -256,16 +268,33 @@ tr.issue {
tr {
span.expander {
margin-left: 0;
padding-left: 8px;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
display: inline-block;
padding: 0;
float: left;
&.icon {
padding-left: 18px;
text-align: center;
&::before {
margin: 0 0 0 -18px;
color: $gray-600;
font-size: 12px;
}
}
&:not(.icon) {
width: 18px;
padding: 0;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
}
}
&.open span.expander {
&.open span.expander:not(.icon) {
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
}
}
@@ -335,13 +364,13 @@ tr.entry {
&.file td {
&.filename a,
&.filename_no_report a {
margin-left: 16px;
margin-left: 18px;
}
}
}
@if $table-list-color-odd-rows {
table.list:not(.odd-even) tbody tr:nth-child(odd),
table.list:not(.odd-even) tbody tr:nth-child(odd):not(.ui-sortable-helper),
.odd {
> td {
background-color: $table-bg-accent;
@@ -350,7 +379,7 @@ tr.entry {
}
@if $table-list-color-even-rows {
table.list:not(.odd-even) tbody tr:nth-child(even),
table.list:not(.odd-even) tbody tr:nth-child(even):not(.ui-sortable-helper),
.even {
> td {
background-color: $table-bg-accent;
@@ -359,8 +388,16 @@ tr.entry {
}
@if $table-list-highlight-rows {
table.list > tbody > tr:nth-child(n):hover {
table.list > tbody > tr:nth-child(n):hover:not(.ui-sortable-helper) {
background-color: $table-bg-hover;
@if $color-priorities {
@each $priority-id, $priority-color in $priority-color-map {
&.priority-#{$priority-id} {
background-color: rgba(map-get($priority-color, background), $table-color-hover-factor);
}
}
}
}
}
@@ -384,6 +421,29 @@ tr.entry {
}
}
@if $color-priorities {
@each $priority-id, $priority-color in $priority-color-map {
tr.priority-#{$priority-id} {
&.odd td {
background-color: rgba(map-get($priority-color, background), $table-color-odd-factor);
}
&.even td {
background-color: rgba(map-get($priority-color, background), $table-color-even-factor);
}
td {
border-color: map-get($priority-color, border);
color: map-get($priority-color, color);
}
a {
color: map-get($priority-color, link);
}
}
}
}
@if $color-trackers {
tr.issue .id > a,
tr.issue .issue_id > a,
@@ -639,7 +699,7 @@ table.files {
tr.file td {
&.filename {
padding-left: 20px + $table-cell-padding;
padding-left: $icon-width + $table-cell-padding;
text-align: left;
}
@@ -682,6 +742,15 @@ table.list.enumerations {
//
.query-totals {
#content & {
margin-top: 0;
@media screen and (min-width: $redmine-responsive-min) {
margin-top: -($line-height-computed * 2 + $btn-padding-vertical);
text-align: right;
}
}
> span {
margin-right: $padding-base-horizontal;

View File

@@ -86,12 +86,122 @@
}
//
// Redmine Banner
// https://github.com/akiko-pusu/redmine_banner
// --------------------------------------------------
#global_banner {
.box {
margin-bottom: $line-height-computed;
}
}
.banner_area {
@media screen and (max-width: $redmine-responsive-max) {
#main #content > & {
margin-bottom: $line-height-computed;
}
}
.banner {
@extend %fa-icon;
margin: 0;
padding: $padding-large-vertical $padding-large-horizontal;
padding-left: $padding-large-horizontal + 8px + 16px;
border: 1px solid $component-border;
border-radius: $border-radius-base;
background: $component-bg;
color: $component-color;
@media screen and (min-width: $redmine-responsive-min) {
border-radius: 0;
}
&::before {
content: $fa-var-info;
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
&_info {
border-color: $flash-info-border;
background-color: $flash-info-bg;
color: $flash-info-text;
&::before {
content: $fa-var-info-circle;
}
}
&_warn {
border-color: $flash-warning-border;
background-color: $flash-warning-bg;
color: $flash-warning-text;
&::before {
content: $fa-var-warning;
}
a,
~ div a {
color: $flash-warning-link;
}
}
&_alert {
border-color: $flash-error-border;
background-color: $flash-error-bg;
color: $flash-error-text;
&::before {
content: $fa-var-exclamation-circle;
}
a,
~ div a {
color: $flash-error-link;
}
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
margin-bottom: $line-height-computed / 2;
&:last-child {
margin-bottom: 0;
}
}
a {
text-decoration: underline;
}
}
.banner_edit {
a {
margin-left: 5px;
}
}
}
//
// Redmine Hearts
// https://github.com/cat-in-136/redmine_hearts
// --------------------------------------------------
.journal > div + .contextual {
padding-top: 0;
padding-bottom: 0;
border: 0;
> .heart-link-with-count {
@@ -200,11 +310,155 @@
}
//
// RedmineUP
// https://www.redmineup.com/pages/plugins
// --------------------------------------------------
h2 {
.scope_title,
.live_search,
.tags {
vertical-align: top;
}
.live_search {
margin-left: $padding-side / 2;
}
.tags {
.tag_list {
margin-top: 0;
}
}
}
div.details {
&.contact,
&.product {
padding: 0;
border: 0;
background: transparent;
}
}
//
// Redmine Agile
// https://www.redmineup.com/pages/plugins/agile
// --------------------------------------------------
html.agile-board-fullscreen .icon.icon-fullscreen {
padding: ($padding-small-vertical - 1px) $padding-small-vertical;
font-size: 0;
text-align: center;
text-indent: 0;
@include nice-shadow(1);
&::before {
margin: 0;
}
}
@if $agile-board-customize {
.agile-board {
table.list.issues-board {
tbody tr {
background-color: $body-bg;
> td.issue-status-col {
padding: 0;
padding-left: parse-length($agile-issue-card-margin, left);
background-color: $agile-board-background;
&.closed .issue-card {
background: $agile-issue-card-closed-background;
}
}
}
}
.issue-card {
margin: $agile-issue-card-margin;
margin-left: 0;
padding: $agile-issue-card-padding;
border: 1px solid $agile-issue-card-border;
border-width: $agile-issue-card-border-width;
border-radius: $agile-issue-card-border-radius;
background-color: $agile-issue-card-background;
color: $agile-issue-card-color;
@include nice-shadow(1);
&.ui-sortable-helper {
@include nice-shadow(4);
}
&:not(.context-menu-selection) {
.attributes,
em.info,
span.hours {
color: $text-color;
}
}
@each $class, $color in $agile-issue-card-color-map {
&.#{$class} {
border-color: map-get($color, border);
background-color: map-get($color, background);
}
}
.checklist,
.info,
.sub-issues {
border-color: rgba($black, .15);
}
p.issue-id,
p.name {
margin-bottom: 5px;
&:last-of-type {
margin-bottom: 0;
}
}
p.issue-id {
line-height: 1;
}
p.project {
border-radius: $agile-issue-card-border-radius - 1px;
border-color: rgba($black, .15);
background-clip: padding-box;
}
p.name {
font-weight: $font-weight-bold;
}
}
}
@each $class, $color in $agile-issue-card-color-map {
@if map-get($color, link) != $link-color {
.#{$class} {
a {
color: map-get($color, link);
}
}
}
}
}
.agile-board {
.quick-comment {
textarea {
margin-bottom: parse-length($agile-issue-card-padding, bottom);
}
}
}
.controller-agile_charts #main {
@if $css-grid-layout {
> div:not(#content):not(#sidebar) {
@@ -229,6 +483,42 @@
}
//
// Redmine CRM
// https://www.redmineup.com/pages/plugins/crm
// --------------------------------------------------
table.sidebar.attributes {
tr {
th,
td {
padding: parse-length($table-condensed-cell-padding, top) 0;
vertical-align: top;
}
th {
padding-right: parse-length($table-condensed-cell-padding, right);
}
}
}
div.add-note {
input,
textarea {
margin-bottom: $line-height-computed;
}
}
@if $table-list-highlight-rows {
table.contacts.index,
table.contacts.index {
> tbody > tr:nth-child(n):hover {
background-color: $table-bg-hover;
}
}
}
//
// Redmine Tags
// https://www.redmineup.com/pages/plugins/tags
@@ -240,15 +530,43 @@
margin: 0;
}
&.select2-container.select2-container--default {
.select2-selection--multiple {
line-height: $line-height-base;
&-container.select2-container--default {
color: $text-color;
.select2-selection--single,
.select2-selection--multiple {
min-height: $input-height-base;
line-height: $line-height-base;
}
.select2-selection--single {
height: $input-height-base;
.select2-selection__rendered {
padding-top: $input-padding-vertical;
padding-bottom: $input-padding-vertical;
border: 0;
font-size: $font-size-base;
line-height: $line-height-base;
}
.select2-selection__arrow {
height: $input-height-base;
}
.select2-selection__clear {
border: 0;
}
}
.select2-selection--multiple {
.select2-selection__rendered {
padding: 0 3px 3px;
}
.select2-selection__choice {
margin-top: 3px;
margin-right: 3px;
padding-top: 0;
padding-bottom: 0;
}
@@ -269,14 +587,79 @@
box-shadow $transition-time ease-in-out;
border-color: $input-border;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
}
background-clip: padding-box;
&.select2-container--focus {
.select2-selection {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
&.icon {
padding-left: 18px + 8px;
&::before {
position: absolute;
top: 50%;
left: 8px;
margin: ($fa-font-size-base / -2) 0 0;
}
}
}
&.select2-container {
&:focus,
* {
outline: none;
}
&--open,
&--focus {
.select2-selection {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
}
}
}
.select2-search__field {
&:focus {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
}
}
}
}
span.tag-label-color {
@at-root body & {
padding: 0 !important; // stylelint-disable-line declaration-no-important
border: 0 !important; // stylelint-disable-line declaration-no-important
border-radius: $badge-border-radius;
box-shadow: inset 0 -1px 0 rgba($black, .12);
font-size: $font-size-small-px;
a,
span {
font-family: inherit;
font-size: inherit;
}
> a,
> span {
display: inline-block;
padding: 1px 5px;
text-shadow: 0 1px 0 rgba($black, .2);
}
a {
&:hover {
opacity: .8;
}
}
}
}
.list td.tags {
padding-bottom: max(parse-length($table-cell-padding, bottom) - 2px - 1px, 0);
span.tag-label-color {
margin-bottom: 2px;
margin-left: 0;
transform: translateY(-1px);
}
}
@@ -286,17 +669,39 @@
// https://www.redmineup.com/pages/plugins/checklists
// --------------------------------------------------
.checklist {
li {
a {
margin: 0;
line-height: inherit;
}
}
}
#checklist_form_items {
.checklist-item {
display: block;
margin: 0;
padding-top: $check-list-offset-top;
line-height: initial;
margin: 0 0 2px;
&.new {
padding-top: $padding-base-vertical;
line-height: inherit;
margin: $padding-base-vertical 0 0;
}
input[type="checkbox"] {
position: relative;
top: 2px;
vertical-align: baseline;
}
input[type="button"] {
margin-right: 4px;
}
}
}
#checklist-menu.ui-menu {
a {
padding: 2px 0 2px 24px;
}
}
@@ -361,130 +766,6 @@
}
//
// Redmine CRM People
// http://www.redminecrm.com/projects/people/
// --------------------------------------------------
#people_list {
table.index {
margin-bottom: $line-height-computed;
}
}
#content {
.person.details {
margin-bottom: $line-height-computed;
padding: $issue-padding;
border: 1px solid $issue-border;
border-radius: $border-radius-base;
background-color: $issue-bg;
.avatar {
width: 64px;
max-width: 64px;
overflow: hidden;
}
.name,
.subject_info {
padding: 0 0 0 $issue-padding;
}
.name {
> h1 {
margin-bottom: 5px;
}
> p {
margin-bottom: 0;
}
}
.subject_info {
border-left: 1px solid $issue-border;
> ul {
margin: 0;
}
}
.icon {
background-image: none;
}
}
.department.issue.details {
> p {
clear: both;
}
> .author {
margin-bottom: 0;
clear: none;
}
}
}
#sidebar {
.person.attributes {
font-size: $font-size-list;
th,
td {
padding: $table-condensed-cell-padding;
text-align: left;
vertical-align: top;
}
.icon {
padding-left: $table-condensed-cell-padding + 20px;
background-image: none;
> a {
@extend %fa-icon;
}
}
.email {
td a {
display: block;
max-width: floor($sidebar-width / 3);
overflow: hidden;
text-overflow: ellipsis;
&:hover {
position: absolute;
max-width: 100%;
margin: -$table-condensed-cell-padding;
padding: $table-condensed-cell-padding;
background: $body-bg;
box-shadow: $panel-shadow;
}
}
}
}
.person_data {
td.avatar,
td.name {
padding: 0 0 $table-cell-padding;
}
td.avatar {
width: 40px;
}
td.name {
h4 {
margin: 0;
letter-spacing: 0;
}
}
}
}
//
// Redmine codebutton
// https://github.com/mediatainment/redmine_codebutton

View File

@@ -20,6 +20,10 @@ table.progress {
float: none;
}
tr {
background: transparent !important; // stylelint-disable-line declaration-no-important
}
td {
height: $progress-height;
padding: 0;
@@ -45,12 +49,17 @@ table.progress {
&.todo {
background-color: $progress-bg !important; // stylelint-disable-line declaration-no-important
mix-blend-mode: multiply;
}
}
.issue & td {
padding: 0;
}
.context-menu-selection & td.todo {
mix-blend-mode: screen;
}
}
p {

View File

@@ -3,8 +3,16 @@
display: none;
}
.inline-flex {
display: inline-flex;
body.controller-issues h2 & {
padding-right: 0;
}
}
// stylelint-disable selector-max-compound-selectors
.theme-Purplemine2 {
body {
@media screen and (max-width: $redmine-responsive-max) {
.flyout-menu + div {
#header {
@@ -83,6 +91,11 @@
overflow: auto;
}
#ajax-indicator {
left: 50%;
width: 200px;
}
.mobile-toggle-button {
width: $responsive-header-height;
height: $responsive-header-height;
@@ -126,7 +139,7 @@
ul {
li:nth-child(n) {
a {
a:not(.icon-only) {
height: auto;
padding: $padding-large-vertical $padding-large-horizontal;
line-height: $line-height-base;
@@ -142,13 +155,15 @@
}
.icon-only {
flex: 0 0 40px;
flex: 0;
padding-right: 0;
padding-left: 0;
padding-left: 40px;
text-align: center;
text-overflow: initial;
&::before {
line-height: inherit;
width: 40px;
margin-left: -40px;
}
}
}
@@ -219,7 +234,7 @@
#admin-menu {
a {
background-position: 8px center;
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
&.additionals {
padding-left: 32px !important; // stylelint-disable-line declaration-no-important
@@ -254,7 +269,7 @@
}
.delete {
flex: 0 0 24px;
margin-right: $padding-large-vertical;
margin-left: auto;
float: none;
text-align: center;
@@ -412,7 +427,7 @@
}
}
#issue-changesets {
div#issue-changesets {
div.changeset {
padding: 0;
}
@@ -420,6 +435,10 @@
#admin-index > #admin-menu li {
padding: 0;
a {
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
}
}
}

View File

@@ -1,9 +1,5 @@
//
// Syntax highlight - Rouge
// --------------------------------------------------
.syntaxhl {
background: #fafafa;
color: #24292e;
.hll {
background-color: #ffc;
@@ -11,92 +7,59 @@
// Comment
.c {
color: #888;
}
// Error
.err {
background-color: #faa;
color: #f00;
color: #6a737d;
}
// Keyword
.k {
color: #080;
font-weight: bold;
}
// Operator
.o {
color: #333;
color: #d73a49;
}
// Comment.Hashbang
.ch {
color: #888;
color: #6a737d;
}
// Comment.Multiline
.cm {
color: #888;
color: #6a737d;
}
// Comment.Preproc
.cp {
color: #579;
color: #d73a49;
}
// Comment.PreprocFile
.cpf {
color: #888;
color: #032f62;
}
// Comment.Single
.c1 {
color: #888;
color: #6a737d;
}
// Comment.Special
.cs {
color: #c00;
font-weight: bold;
color: #6a737d;
}
// Generic.Deleted
.gd {
color: #a00000;
}
// Generic.Emph
.ge {
font-style: italic;
}
// Generic.Error
.gr {
color: #f00;
background-color: #ffeef0;
color: #b31d28;
}
// Generic.Heading
.gh {
color: #000080;
font-weight: bold;
color: #005cc5;
}
// Generic.Inserted
.gi {
color: #00a000;
}
// Generic.Output
.go {
color: #888;
}
// Generic.Prompt
.gp {
color: #c65d09;
font-weight: bold;
background-color: #f0fff4;
color: #22863a;
}
// Generic.Strong
@@ -106,7 +69,7 @@
// Generic.Subheading
.gu {
color: #800080;
color: #6f42c1;
font-weight: bold;
}
@@ -117,123 +80,112 @@
// Keyword.Constant
.kc {
color: #080;
font-weight: bold;
color: #005cc5;
}
// Keyword.Declaration
.kd {
color: #080;
font-weight: bold;
color: #d73a49;
}
// Keyword.Namespace
.kn {
color: #080;
font-weight: bold;
color: #d73a49;
}
// Keyword.Pseudo
.kp {
color: #038;
font-weight: bold;
color: #d73a49;
}
// Keyword.Reserved
.kr {
color: #080;
font-weight: bold;
color: #d73a49;
}
// Keyword.Type
.kt {
color: #339;
font-weight: bold;
color: #d73a49;
}
// Literal.Number
.m {
color: #60e;
font-weight: bold;
color: #005cc5;
}
// Literal.String
.s {
background-color: #fff0f0;
color: #032f62;
}
// Name.Attribute
.na {
color: #00c;
color: #005cc5;
}
// Name.Builtin
.nb {
color: #007020;
color: #005cc5;
}
// Name.Class
.nc {
color: #b06;
font-weight: bold;
color: #6f42c1;
}
// Name.Constant
.no {
color: #036;
font-weight: bold;
color: #005cc5;
}
// Name.Decorator
.nd {
color: #555;
font-weight: bold;
color: #6f42c1;
}
// Name.Entity
.ni {
color: #800;
font-weight: bold;
color: #005cc5;
}
// Name.Exception
.ne {
color: #f00;
font-weight: bold;
color: #005cc5;
}
// Name.Function
.nf {
color: #06b;
font-weight: bold;
color: #6f42c1;
}
// Name.Label
.nl {
color: #970;
font-weight: bold;
color: #005cc5;
}
// Name.Namespace
.nn {
color: #0e84b5;
font-weight: bold;
color: #6f42c1;
}
// Name.Tag
.nt {
color: #070;
color: #22863a;
}
// Name.Variable
.nv {
color: #963;
color: #24292e;
}
// Operator
.o {
color: #d73a49;
}
// Operator.Word
.ow {
color: #000;
font-weight: bold;
color: #d73a49;
}
// Text.Whitespace
@@ -243,138 +195,126 @@
// Literal.Number.Bin
.mb {
color: #60e;
font-weight: bold;
color: #005cc5;
}
// Literal.Number.Float
.mf {
color: #60e;
font-weight: bold;
color: #005cc5;
}
// Literal.Number.Hex
.mh {
color: #058;
font-weight: bold;
color: #005cc5;
}
// Literal.Number.Integer
.mi {
color: #00d;
font-weight: bold;
color: #005cc5;
}
// Literal.Number.Oct
.mo {
color: #40e;
font-weight: bold;
color: #005cc5;
}
// Literal.String.Affix
.sa {
background-color: #fff0f0;
color: #d73a49;
}
// Literal.String.Backtick
.sb {
background-color: #fff0f0;
color: #032f62;
}
// Literal.String.Char
.sc {
color: #04d;
color: #032f62;
}
// Literal.String.Delimiter
.dl {
background-color: #fff0f0;
color: #d73a49;
}
// Literal.String.Doc
.sd {
color: #d42;
color: #032f62;
}
// Literal.String.Double
.s2 {
background-color: #fff0f0;
color: #032f62;
}
// Literal.String.Escape
.se {
background-color: #fff0f0;
color: #666;
font-weight: bold;
color: #032f62;
}
// Literal.String.Heredoc
.sh {
background-color: #fff0f0;
color: #032f62;
}
// Literal.String.Interpol
.si {
background-color: #eee;
color: #005cc5;
}
// Literal.String.Other
.sx {
background-color: #fff0f0;
color: #d20;
color: #032f62;
}
// Literal.String.Regex
.sr {
background-color: #fff0ff;
color: #000;
color: #032f62;
}
// Literal.String.Single
.s1 {
background-color: #fff0f0;
color: #032f62;
}
// Literal.String.Symbol
.ss {
color: #a60;
color: #005cc5;
}
// Name.Builtin.Pseudo
.bp {
color: #007020;
color: #005cc5;
}
// Name.Function.Magic
.fm {
color: #06b;
font-weight: bold;
color: #005cc5;
}
// Name.Variable.Class
.vc {
color: #369;
color: #24292e;
}
// Name.Variable.Global
.vg {
color: #d70;
font-weight: bold;
color: #24292e;
}
// Name.Variable.Instance
.vi {
color: #33b;
color: #24292e;
}
// Name.Variable.Magic
.vm {
color: #963;
color: #005cc5;
}
// Literal.Number.Integer.Long
.il {
color: #00d;
font-weight: bold;
color: #005cc5;
}
}

View File

@@ -3,18 +3,21 @@
// --------------------------------------------------
#top-menu {
$top-menu-padding-vertical: $padding-small-vertical + 1px;
$top-menu-padding-horizontal: $padding-side;
@extend %clearfix;
position: relative;
padding: $padding-small-vertical $padding-side;
box-sizing: border-box;
padding: $top-menu-padding-vertical $top-menu-padding-horizontal;
background: $top-menu-bg;
color: $top-menu-text;
font-size: $font-size-small;
@if $top-menu-collapse {
$toggler-position-v: $padding-small-vertical + 1px;
$toggler-position-v: $top-menu-padding-vertical + 1px;
$toggler-position-h: 1px;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $padding-small-vertical;
position: relative;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $top-menu-padding-vertical * 2;
padding-bottom: 0;
overflow: hidden;
@@ -24,7 +27,7 @@
a {
display: inline-block;
margin-bottom: $padding-small-vertical;
margin-bottom: $top-menu-padding-vertical;
white-space: nowrap;
}

View File

@@ -116,6 +116,8 @@ div.wiki {
}
blockquote {
margin-bottom: 1em;
> :first-child {
margin-top: 0;
}
@@ -157,7 +159,8 @@ div.wiki {
}
li > p {
margin-top: ($line-height-computed / 2);
margin-top: .25em;
margin-bottom: 0;
}
table {
@@ -169,7 +172,10 @@ div.wiki {
word-break: keep-all;
}
tr:nth-child(2n) {
// Textile
tbody:first-child tr:nth-child(2n),
// Markdown
thead + tbody tr:nth-child(2n-1) {
background-color: $table-bg-accent;
}
@@ -203,10 +209,9 @@ div.wiki {
pre {
width: auto;
margin-bottom: 1.15em;
padding: 4px 8px;
padding: 12px 15px;
overflow-x: auto;
overflow-y: hidden;
border: 1px solid rgba($gray-500, .45);
border-radius: $border-radius-base;
background-color: rgba($gray-500, .15);
font-size: $font-size-small;
@@ -313,11 +318,8 @@ h5,
h6 {
.wiki-anchor {
display: none;
position: relative;
top: -(1em - $font-size-small);
margin-left: 5px;
color: $headings-anchor-color !important; // stylelint-disable-line declaration-no-important
font-size: $font-size-small;
text-decoration: none !important; // stylelint-disable-line declaration-no-important
}

View File

@@ -0,0 +1,49 @@
// Extract the length of margin/padding/border
// for given side from a shorthand syntax.
//
// Examples:
// parse-length(1px, top) -> 1px
// parse-length(1px 2px, right) -> 2px
// parse-length(1px 2px 3px 4px, bottom) -> 3px
// parse-length(1px 2px 3px 4px, left) -> 4px
//
@function parse-length($value, $side) {
$index: 1;
// Top values are always at index 1. The same for when the list has only one item
@if ($side == top or length($value) == 1) {
$index: 1;
}
// Covers "vertical horizontal" style
@else if (length($value) == 2) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 1;
}
}
// Covers "top horizontal bottom" style
@else if (length($value) == 3) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
}
// Covers "top right bottom left" style
@else if (length($value) == 4) {
@if ($side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
@if ($side == left) {
$index: 4;
}
}
@return nth($value, $index);
}

View File

@@ -1,6 +1,12 @@
@if $enable-sidebar-toggler {
#main {
position: relative;
// Fix full screen view for dashboard plugin
// https://github.com/jgraichen/redmine_dashboard
@at-root .controller-rdb_taskboard & {
position: static;
}
}
#sidebar {

View File

@@ -28,6 +28,7 @@
@mixin tracker($parent, $background, $color) {
tr#{$parent} .id > a,
tr#{$parent} .issue_id > a,
a#{$parent}.issue,
a#{$parent},
.relations > span > a#{$parent},
.parent > a#{$parent} {

File diff suppressed because one or more lines are too long