Compare commits

...

40 Commits

Author SHA1 Message Date
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
mrliptontea
e5b9b5fdf9 Release v2.9.0 2020-01-30 21:14:20 +00:00
Grzegorz Rajchman
e7e68125b3 Merge pull request #154 from mrliptontea/resolve-issues
Resolve issues
2020-01-30 20:59:03 +00:00
mrliptontea
57a60673a7 Resolve issues
* Fixed #141: improved styling for issue edit form.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
2020-01-30 20:55:46 +00:00
mrliptontea
136cf02394 Update dependencies 2020-01-28 20:20:28 +00:00
mrliptontea
9f7d02e511 Update badges 2019-08-13 23:04:19 +01:00
Grzegorz Rajchman
6b64af35a5 Merge pull request #137 from mrliptontea/actions
Set up actions
2019-08-13 22:46:28 +01:00
mrliptontea
e716b92e67 Set up actions 2019-08-13 22:42:48 +01:00
mrliptontea
9418139adb Release v2.8.0 2019-08-13 22:09:07 +01:00
mrliptontea
ca3ead0abf Update README 2019-08-13 22:07:47 +01:00
Grzegorz Rajchman
7745e4b617 Merge pull request #136 from two-pack/fixes_pos_pagination
Invalid position of pagination with large image attachment
2019-08-13 22:05:03 +01:00
two-pack
1207548232 Fixes lint errors. 2019-08-13 09:30:52 +09:00
two-pack
9f451017c5 Fixes position of pagination with large image attachment. 2019-08-13 09:03:50 +09:00
mrliptontea
a28d215f31 Update package-lock.json
Also, delete accidentally commited yarn.lock
2019-08-11 19:50:13 +01:00
mrliptontea
22ec5e09f5 Ignore no-prototype-builtins rule where not applicable 2019-08-10 18:29:41 +01:00
mrliptontea
9371b797b3 Update browserlist config 2019-08-06 23:16:29 +01:00
mrliptontea
924a5a94ed Update dependencies 2019-08-06 23:11:03 +01:00
mrliptontea
53fffa3b5c Update build badge 2019-08-06 23:08:43 +01:00
mrliptontea
42e5ce1217 Fix spacing for headers on roadmap pages
Resolves #132
2019-08-06 23:08:04 +01:00
42 changed files with 2465 additions and 2095 deletions

10
.eslintrc.js Normal file
View File

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

31
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Run linters
on: push
jobs:
lint:
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Use Node.js 10.x
uses: actions/setup-node@v1
with:
node-version: "10.x"
- name: Install npm dependencies
run: npm ci
- 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

@@ -1,11 +0,0 @@
dist: xenial
language: node_js
node_js:
- 10
cache:
directories:
- node_modules
install:
- npm install
script:
- npm run lint --silent

View File

@@ -38,7 +38,7 @@ module.exports = function (grunt) {
postcss: { postcss: {
options: { options: {
processors: [ processors: [
require('autoprefixer')({ browsers: 'last 2 versions' }) require('autoprefixer')()
] ]
}, },

View File

@@ -2,7 +2,7 @@
A free Redmine theme for modern browsers. A free Redmine theme for modern browsers.
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg) [![Build Status](https://travis-ci.org/mrliptontea/PurpleMine2.svg?branch=master)](https://travis-ci.org/mrliptontea/PurpleMine2) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg)](https://github.com/mrliptontea/PurpleMine2/issues) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) ![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) [![Build Status](https://img.shields.io/endpoint.svg?url=https://actions-badge.atrox.dev/mrliptontea/PurpleMine2/badge&label=lint&logo=none)](https://actions-badge.atrox.dev/mrliptontea/PurpleMine2/goto) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg)](https://github.com/mrliptontea/PurpleMine2/issues)
--- ---
@@ -56,6 +56,47 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
## Changelog ## Changelog
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.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
* Added styling for clear query button.
* Improved responsive sidebar menu layout.
v2.8.0 (2019-08-13):
* Resolved #132: fixed spacing for headers on roadmap pages.
* Merged fix #136: broken layout with large image attachment.
v2.7.0 (2019-06-13): v2.7.0 (2019-06-13):
* Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin. * Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin.

File diff suppressed because one or more lines are too long

3406
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
{ {
"name": "PurpleMine2", "name": "purplemine",
"description": "A free Redmine 2.6+ theme written in SCSS", "description": "A free Redmine 2.6+ theme written in SCSS",
"keywords": [ "keywords": [
"redmine", "redmine",
@@ -20,33 +20,34 @@
"scripts": { "scripts": {
"build": "grunt", "build": "grunt",
"watch": "grunt watch", "watch": "grunt watch",
"lint:js": "standard", "lint:js": "eslint src/javascripts/",
"lint:sass": "stylelint src/sass/**/*.scss", "lint:sass": "stylelint src/sass/**/*.scss",
"lint": "npm run -S lint:js && npm run -S lint:sass" "lint": "npm run -S lint:js && npm run -S lint:sass"
}, },
"dependencies": { "dependencies": {
"autoprefixer": "^9.4.10", "autoprefixer": "^9.7.5",
"grunt": "^1.0.3", "grunt": "^1.1.0",
"grunt-contrib-uglify": "^4.0.0", "grunt-contrib-uglify": "^4.0.1",
"grunt-contrib-watch": "^1.1.0", "grunt-contrib-watch": "^1.1.0",
"grunt-postcss": "^0.9.0", "grunt-postcss": "^0.9.0",
"grunt-sass": "^3.0.2", "grunt-sass": "^3.1.0",
"node-sass": "^4.11.0", "node-sass": "^4.13.1",
"sass-inline-svg": "^1.2.0" "sass-inline-svg": "^1.2.3"
}, },
"devDependencies": { "devDependencies": {
"standard": "^12.0.1", "eslint": "^6.8.0",
"stylelint": "^10.0.1", "eslint-config-standard": "^14.1.1",
"stylelint-order": "^3.0.0", "eslint-plugin-import": "^2.20.1",
"stylelint-scss": "^3.6.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.16.0"
}, },
"standard": { "browserslist": [
"globals": [ "last 2 versions",
"$", "> 1%",
"localStorage" "not dead"
], ]
"ignore": [
"/javascripts"
]
}
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
.ui-multiselect{padding:2px 0 2px 4px;text-align:left}.ui-multiselect span.ui-icon{float:right}.ui-multiselect-single .ui-multiselect-checkboxes input{position:absolute !important;top:auto !important;left:-9999px}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important}.ui-multiselect-header{margin-bottom:3px;padding:3px}.ui-multiselect-header ul{font-size:.92em}.ui-multiselect-header ul li{padding:0 10px 0 0;float:left}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline}.ui-multiselect-header span.ui-icon{float:left}.ui-multiselect-header li.ui-multiselect-close{padding-right:0;float:right;text-align:right}.ui-multiselect-menu{-webkit-box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);display:none;position:absolute;z-index:10000;padding:3px;text-align:left}.ui-multiselect-checkboxes{position:relative;padding-right:2px;overflow-y:scroll}.ui-multiselect-checkboxes input[type="checkbox"]{top:0;margin:3px 0 0 -20px;float:left}.ui-multiselect-checkboxes label{display:block;padding:3px 1px;padding-left:26px;border:1px solid transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-multiselect-checkboxes label input{position:relative;top:1px}.ui-multiselect-checkboxes li{clear:both;font-size:.92em}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label{margin-bottom:2px;border-bottom:1px solid #dadce7;font-weight:600;text-align:center}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a{display:block;margin:1px 0;padding:3px;text-decoration:none}* html .ui-multiselect-checkboxes label{border:0 none} .ui-multiselect{padding:2px 0 2px 4px;text-align:left}.ui-multiselect span.ui-icon{float:right}.ui-multiselect-single .ui-multiselect-checkboxes input{position:absolute !important;top:auto !important;left:-9999px}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important}.ui-multiselect-header{margin-bottom:3px;padding:3px}.ui-multiselect-header ul{font-size:.92em}.ui-multiselect-header ul li{padding:0 10px 0 0;float:left}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline}.ui-multiselect-header span.ui-icon{float:left}.ui-multiselect-header li.ui-multiselect-close{padding-right:0;float:right;text-align:right}.ui-multiselect-menu{box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);display:none;position:absolute;z-index:10000;padding:3px;text-align:left}.ui-multiselect-checkboxes{position:relative;padding-right:2px;overflow-y:scroll}.ui-multiselect-checkboxes input[type="checkbox"]{top:0;margin:3px 0 0 -20px;float:left}.ui-multiselect-checkboxes label{display:block;padding:3px 1px;padding-left:26px;border:1px solid transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-multiselect-checkboxes label input{position:relative;top:1px}.ui-multiselect-checkboxes li{clear:both;font-size:.92em}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label{margin-bottom:2px;border-bottom:1px solid #dadce7;font-weight:600;text-align:center}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a{display:block;margin:1px 0;padding:3px;text-decoration:none}* html .ui-multiselect-checkboxes label{border:0 none}

View File

@@ -1 +1 @@
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{-webkit-box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e425a;font-size:.92em;text-align:left;word-wrap:break-word}.ui-tooltip-tip{position:absolute;z-index:10;margin:0 auto;overflow:hidden;border:0 none;border-color:#d1d3e0;background:transparent;background-color:#fff} .qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e425a;font-size:.92em;text-align:left;word-wrap:break-word}.ui-tooltip-tip{position:absolute;z-index:10;margin:0 auto;overflow:hidden;border:0 none;border-color:#d1d3e0;background:transparent;background-color:#fff}

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

@@ -55,7 +55,7 @@ PurpleMine.HistoryTabs = (function () {
this._ = translations[this.lang] this._ = translations[this.lang]
if (this.$history.length > 0) { if (this.$history.length > 0 && $('#history > h3').length > 0) {
buildTabs() buildTabs()
markFirstOfTypes() markFirstOfTypes()
} }

View File

@@ -47,6 +47,7 @@ PurpleMine.MenuCollapse = (function () {
} }
for (var menu in this.menus) { for (var menu in this.menus) {
// eslint-disable-next-line no-prototype-builtins
if (this.menus.hasOwnProperty(menu) && this.menus[menu].$el.length > 0) { if (this.menus.hasOwnProperty(menu) && this.menus[menu].$el.length > 0) {
handleMenu(menu) handleMenu(menu)
} }

View File

@@ -52,6 +52,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
var revisionDotOverlay var revisionDotOverlay
$.each(commits, function (index, commit) { $.each(commits, function (index, commit) {
// eslint-disable-next-line no-prototype-builtins
if (!commit.hasOwnProperty('space')) { if (!commit.hasOwnProperty('space')) {
commit.space = 0 commit.space = 0
} }
@@ -72,6 +73,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
parentCommit = commitsByScmid[parentScmid] parentCommit = commitsByScmid[parentScmid]
if (parentCommit) { if (parentCommit) {
// eslint-disable-next-line no-prototype-builtins
if (!parentCommit.hasOwnProperty('space')) { if (!parentCommit.hasOwnProperty('space')) {
parentCommit.space = 0 parentCommit.space = 0
} }

View File

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

View File

@@ -43,7 +43,7 @@ $black: #000 !default;
$gray: hsl(hue($indigo), 20%, 85%) !default; $gray: hsl(hue($indigo), 20%, 85%) !default;
$shade-map: ( $shade-map: (
50: 90%, 50: 87.5%,
100: 80%, 100: 80%,
200: 65%, 200: 65%,
300: 40%, 300: 40%,
@@ -53,7 +53,7 @@ $shade-map: (
700: 40%, 700: 40%,
800: 65%, 800: 65%,
900: 80%, 900: 80%,
950: 90% 950: 87.5%
) !default; ) !default;
@function shade($color, $shade: 500) { @function shade($color, $shade: 500) {
@@ -166,6 +166,12 @@ $wiki-font-size: 16px !default;
$wiki-line-height: 1.6 !default; $wiki-line-height: 1.6 !default;
$wiki-preview-bg: $body-bg !default; $wiki-preview-bg: $body-bg !default;
$toc-bg: shade($yellow, 50) !default;
$toc-border: mix($yellow, $gray-500, 25%) !default;
$toc-text: $text-color !default;
$toc-link: shade($yellow, 800) !default;
$toc-link-hover: shade($yellow, 900) !default;
$toc-shadow: 0 1px 3px rgba($black, .07) !default;
$toc-active-link: darken($link-color, 10%) !default; $toc-active-link: darken($link-color, 10%) !default;
$toc-active-link-hover: shade($toc-active-link, 700) !default; $toc-active-link-hover: shade($toc-active-link, 700) !default;
$toc-active-border: $link-color !default; $toc-active-border: $link-color !default;
@@ -215,6 +221,7 @@ $collapsible-max-height: 10000px !default;
$table-cell-padding: 8px !default; $table-cell-padding: 8px !default;
$table-condensed-cell-padding: 5px !default; $table-condensed-cell-padding: 5px !default;
$table-list-header-bg: $body-bg !default;
$table-list-header-border: 0 0 2px !default; $table-list-header-border: 0 0 2px !default;
$table-list-item-border: 0 !default; $table-list-item-border: 0 !default;
$table-list-color-odd-rows: true !default; $table-list-color-odd-rows: true !default;
@@ -505,6 +512,7 @@ $logo-space: floor($header-padding-vertical / 2) !default;
$main-menu-bg: $gray-100 !default; $main-menu-bg: $gray-100 !default;
$main-menu-bg-hover: $gray-100 !default; $main-menu-bg-hover: $gray-100 !default;
$main-menu-bg-active: transparent !default;
$main-menu-link: $gray-900 !default; $main-menu-link: $gray-900 !default;
$main-menu-link-active: $black !default; $main-menu-link-active: $black !default;
$main-menu-border: $gray-400 !default; $main-menu-border: $gray-400 !default;
@@ -604,7 +612,7 @@ $progress-bar-info-bg: $brand-info !default;
$panel-body-padding-vertical: 15px !default; $panel-body-padding-vertical: 15px !default;
$panel-body-padding-horizontal: 15px !default; $panel-body-padding-horizontal: 15px !default;
$panel-body-padding: $panel-body-padding-vertical $panel-body-padding-horizontal !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-bg: $gray-50 !default;
$panel-border: $gray-400 !default; $panel-border: $gray-400 !default;
$panel-border-radius: $border-radius-base !default; $panel-border-radius: $border-radius-base !default;
@@ -640,10 +648,15 @@ $issue-attribute-padding-h: 5px !default;
//== Speech "bubbles" //== Speech "bubbles"
// //
$bubble-bg: $issue-bg !default;
$bubble-border: $issue-border !default;
$bubble-text: $issue-text !default;
$bubble-gravatar-size: 24px !default; $bubble-gravatar-size: 24px !default;
$bubble-gravatar-space: 12px !default; $bubble-gravatar-space: 12px !default;
$bubble-padding-vertical: 8px !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 //== Badges

View File

@@ -61,6 +61,13 @@ table.permissions {
//== Workflows //== Workflows
// //
.controller-workflows {
table.list,
fieldset.collapsible {
margin-bottom: $line-height-computed;
}
}
table.transitions { table.transitions {
td.enabled { td.enabled {
background: $state-success; background: $state-success;

View File

@@ -187,6 +187,10 @@ p.buttons {
min-width: 130px; min-width: 130px;
} }
label + & {
margin-left: $padding-side;
}
@at-root span#{&} { @at-root span#{&} {
> span { > span {
display: inline-block; display: inline-block;

View File

@@ -161,6 +161,27 @@
} }
} }
&.queries {
> li {
position: relative;
> a.query {
padding-right: $sidebar-padding-horizontal * 1.5;
}
> a.icon-only {
position: absolute;
top: $sidebar-padding-vertical;
right: $sidebar-padding-horizontal / 2;
line-height: $line-height-computed;
&::before {
line-height: inherit;
}
}
}
}
&.pages-hierarchy { &.pages-hierarchy {
.pages-hierarchy { .pages-hierarchy {
margin-left: $sidebar-padding-horizontal + 3px; margin-left: $sidebar-padding-horizontal + 3px;

View File

@@ -7,27 +7,29 @@
// //
a.collapsible, a.collapsible,
a.collapsible.icon,
.collapsible > legend { .collapsible > legend {
color: $link-color; color: $link-color;
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
&:hover { &:hover,
&:focus {
color: $link-hover-color; color: $link-hover-color;
text-decoration: none;
} }
&::before { &::before {
content: ""; @include fa-icon;
display: inline-block; content: $fa-var-chevron-down;
position: relative; position: relative;
top: -1px; top: -.1em;
width: 0; width: 1em;
height: 0; height: 1em;
margin-right: 3px; margin-right: 3px;
transform: rotate(0); transform: rotate(0);
border-top: 6px solid; color: $gray-600;
border-right: 4px solid transparent; font-size: 12px;
border-left: 4px solid transparent;
vertical-align: middle; vertical-align: middle;
@if $collapsible-animation-time > 0 { @if $collapsible-animation-time > 0 {
@@ -37,6 +39,7 @@ a.collapsible,
} }
a.collapsible.collapsed, a.collapsible.collapsed,
a.collapsible.icon-collapsed,
.collapsible.collapsed > legend { .collapsible.collapsed > legend {
&::before { &::before {
transform: rotate(-90deg); transform: rotate(-90deg);
@@ -108,11 +111,26 @@ a.collapsible.collapsed,
// stylelint-enable declaration-no-important // stylelint-enable declaration-no-important
} }
img {
image-orientation: from-image;
}
.filecontent-container {
position: relative;
min-height: 200px;
margin-bottom: 20px;
}
.filecontent-container > .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
}
//== Responsive autoscroll //== Responsive autoscroll
// //
.autoscroll { .autoscroll {
position: relative;
margin-bottom: $line-height-computed; margin-bottom: $line-height-computed;
overflow-x: auto; overflow-x: auto;
} }
@@ -594,9 +612,17 @@ div#roadmap {
} }
} }
h2, header {
h3 { display: block;
display: inline;
> h3 {
display: inline-block;
}
}
header > h3,
h3.version {
margin-bottom: 0;
padding-right: 0; padding-right: 0;
} }
@@ -646,16 +672,22 @@ div#version-summary {
//== Ajax indicator //== Ajax indicator
// //
@keyframes spin {
to { transform: rotate(360deg); }
}
#ajax-indicator { #ajax-indicator {
@include nice-shadow(3); @include nice-shadow(3);
position: fixed; position: fixed;
z-index: 100; z-index: 100;
top: 50%; top: 50%;
left: 50%; left: 50%;
box-sizing: border-box;
width: 200px; 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; padding: $padding-large-vertical $padding-large-horizontal;
border: 1px solid $highlight-border; border: 1px solid $highlight-border;
border-radius: $border-radius-base;
opacity: .9; opacity: .9;
background-color: $highlight-bg; background-color: $highlight-bg;
color: $highlight-text; color: $highlight-text;
@@ -663,11 +695,21 @@ div#version-summary {
text-align: center; text-align: center;
span { span {
padding-left: 26px; line-height: $line-height-computed;
background-image: url("../../../images/loading.gif");
background-repeat: no-repeat; &::before {
background-position: 0% 40%; content: "";
vertical-align: bottom; 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;
}
} }
} }
@@ -731,15 +773,14 @@ div.table-list.boards {
} }
.message { .message {
border: 1px solid $gray-400; border: 1px solid $bubble-border;
border-radius: $panel-border-radius; border-radius: $panel-border-radius;
background: $gray-100; background: $bubble-bg;
> h4, > h4,
> p { > p {
margin-bottom: 0; margin-bottom: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal; padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-bottom: 1px solid mix($gray-400, $gray-100, 50%);
color: $gray-700; color: $gray-700;
font-size: $font-size-list; font-size: $font-size-list;
@@ -753,7 +794,8 @@ div.table-list.boards {
} }
.wiki { .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; border-radius: 0 0 $panel-border-radius $panel-border-radius;
background: $body-bg; background: $body-bg;
} }
@@ -768,6 +810,11 @@ div.table-list.boards {
margin-left: ceil($bubble-padding-vertical / 2); margin-left: ceil($bubble-padding-vertical / 2);
} }
} }
.attachments {
padding: $bubble-padding-horizontal;
border-top-color: $bubble-border;
}
} }
.reply { .reply {
@@ -800,12 +847,12 @@ div.table-list.boards {
margin-top: 1px; margin-top: 1px;
margin-left: 2px; margin-left: 2px;
border-width: 6px; border-width: 6px;
border-right-color: $panel-bg; border-right-color: $bubble-bg;
} }
&::before { &::before {
border-width: 7px; border-width: 7px;
border-right-color: $panel-border; border-right-color: $bubble-border;
} }
} }
@@ -920,6 +967,7 @@ div.table-list.boards {
background: $body-bg; background: $body-bg;
color: $panel-color; color: $panel-color;
font-family: $font-family-monospace; font-family: $font-family-monospace;
white-space: pre-wrap;
} }
.diff_out { .diff_out {

View File

@@ -26,6 +26,8 @@ form {
} }
} }
span.field label,
span.field ~ label,
.box label { .box label {
line-height: $line-height-base; line-height: $line-height-base;
@@ -121,7 +123,7 @@ input[type="search"] {
input[type="radio"], input[type="radio"],
input[type="checkbox"] { input[type="checkbox"] {
margin: 4px 1px 0 0; margin: 4px 3px 0 5px;
margin-top: 1px \9; // IE8-9 margin-top: 1px \9; // IE8-9
line-height: normal; line-height: normal;
vertical-align: top; vertical-align: top;
@@ -264,6 +266,7 @@ em.info {
color: $gray-700; color: $gray-700;
font-size: $font-size-small; font-size: $font-size-small;
font-style: normal; font-style: normal;
line-height: $line-height-base;
} }
@@ -307,6 +310,11 @@ em.info {
display: block; display: block;
padding-top: $input-padding-vertical + 1px; padding-top: $input-padding-vertical + 1px;
line-height: $line-height-base; line-height: $line-height-base;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: 0;
}
} }
} }
@@ -350,6 +358,12 @@ em.info {
float: none; float: none;
text-align: left; text-align: left;
cursor: pointer; cursor: pointer;
> input[type="checkbox"],
> input[type="radio"] {
margin-left: -$check-input-gutter;
float: left;
}
} }
&.inline { &.inline {
@@ -363,11 +377,13 @@ em.info {
> input[type="checkbox"], > input[type="checkbox"],
> input[type="radio"] { > input[type="radio"] {
margin-top: $check-input-margin-vertical; margin-top: $check-input-margin-vertical;
margin-left: 0;
} }
~ input[type="checkbox"], ~ input[type="checkbox"],
~ input[type="radio"] { ~ input[type="radio"] {
margin-top: $check-input-margin-btn-v; margin-top: $check-input-margin-btn-v;
margin-left: 0;
} }
} }
} }
@@ -381,14 +397,25 @@ label.inline {
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
} }
}
label.inline,
label.block {
> input { > input {
margin-left: -$check-input-gutter; margin-left: -$check-input-gutter;
float: left; float: left;
} }
input + & {
padding-left: 0;
}
}
label.block {
display: block;
width: auto;
> input {
margin-right: 3px;
margin-left: 3px;
}
} }

View File

@@ -161,6 +161,8 @@ table.list .buttons > a::before {
.icon-sorted-desc::before { content: $fa-var-sort-amount-desc; } .icon-sorted-desc::before { content: $fa-var-sort-amount-desc; }
.icon-toggle-plus::before { content: $fa-var-plus-square; } .icon-toggle-plus::before { content: $fa-var-plus-square; }
.icon-toggle-minus::before { content: $fa-var-minus-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; }
//== Checkbox toggler //== Checkbox toggler
// //
@@ -264,6 +266,10 @@ a.icon-del {
} }
} }
.icon-zoom-in + .icon-zoom-out {
margin-left: 5px;
}
//== Administration menu sections //== Administration menu sections
// //
@@ -610,36 +616,42 @@ em.info.error {
} }
} }
.message .contextual { .message {
a { .contextual {
@extend %fa-icon; a {
opacity: .7; @extend %fa-icon;
opacity: .7;
&:hover, &:hover,
&:focus { &:focus {
opacity: 1; opacity: 1;
} }
&:nth-child(1) { img {
&::before { display: none;
content: $fa-var-comment;
} }
} }
}
&:nth-child(2) { > .contextual {
&::before { a {
content: $fa-var-pencil; &:nth-child(1) {
&::before {
content: $fa-var-comment;
}
} }
}
&:nth-child(3) { &:nth-child(2) {
&::before { &::before {
content: $fa-var-trash; content: $fa-var-pencil;
}
} }
}
img { &:nth-child(3) {
display: none; &::before {
content: $fa-var-trash;
}
}
} }
} }
} }

View File

@@ -88,7 +88,8 @@
margin-bottom: $line-height-computed; margin-bottom: $line-height-computed;
} }
> hr { > hr,
.attribute > hr {
@if $clean-issues { @if $clean-issues {
margin: $issue-padding 0; margin: $issue-padding 0;
} @else { } @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%; width: 100%;
th, th,
@@ -148,71 +184,70 @@
} }
@media screen and (min-width: $screen-md-min) { @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 { > tbody > tr {
> th { > th {
width: 14em; width: $label-width;
} }
> td { > 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; width: auto;
min-width: 16em; }
.attribute .value {
min-width: $label-width;
} }
} }
} }
} }
@if $color-status { .splitcontent {
.attributes td.status, .attribute {
.attribute.status .value { padding-left: $label-width;
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 { .label {
&.#{$status} { width: $label-width;
.attributes td.status, margin-left: -$label-width;
.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;
}
}
.splitcontentleft {
@media screen and (min-width: $screen-lg-min) {
width: auto;
}
}
.attribute { .attribute {
@extend %clearfix; @extend %clearfix;
@@ -222,21 +257,20 @@
} }
.label { .label {
width: 25%; box-sizing: border-box;
float: left; float: left;
color: $gray-700; color: $gray-700;
@media screen and (min-width: $screen-lg-min) {
width: 14em;
}
} }
.value { .value {
color: $gray-950; color: $gray-950;
@media screen and (min-width: $screen-lg-min) { &:empty::after {
width: auto; content: "-";
min-width: 14em + 16em; }
*:last-child {
margin-bottom: 0;
} }
} }
} }
@@ -256,13 +290,18 @@
padding: $issue-padding; padding: $issue-padding;
border-top: 1px solid $issue-border; border-top: 1px solid $issue-border;
} }
// Restore margin below buttons in reverse chronological mode
+ div[style] + .contextual {
margin-bottom: $line-height-computed;
}
} }
div.fileover { div.fileover {
background-color: $highlight-bg; background-color: $highlight-bg;
} }
div.attachments { div.attachments:not(.box) {
padding: $line-height-computed 0; padding: $line-height-computed 0;
border-top: 1px solid $issue-border; border-top: 1px solid $issue-border;
@@ -323,6 +362,7 @@ div.thumbnails {
top: 0; top: 0;
margin: 3px; margin: 3px;
border-radius: $border-radius-base - 1; border-radius: $border-radius-base - 1;
vertical-align: middle;
} }
} }
@@ -354,10 +394,27 @@ div.thumbnails {
td.buttons { td.buttons {
width: 3em; width: 3em;
vertical-align: middle; vertical-align: middle;
a:not(:first-child) {
margin-left: 2px;
}
} }
} }
} }
#trackers_description {
display: none;
dt {
margin: 0 0 ($line-height-computed / 4);
}
dd {
margin-right: 0;
margin-left: 0;
}
}
#new-relation-form { #new-relation-form {
text-align: right; text-align: right;
@@ -370,9 +427,13 @@ div.thumbnails {
} }
} }
#history { #update > form {
overflow: auto; margin-bottom: $line-height-computed;
padding-bottom: $line-height-computed;
border-bottom: 1px solid $issue-border;
}
#history {
> .tabs { > .tabs {
margin-bottom: $line-height-computed + 2px * 2; margin-bottom: $line-height-computed + 2px * 2;
} }
@@ -404,64 +465,86 @@ div.thumbnails {
.journal { .journal {
position: relative; 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 { @if $use-gravatars {
margin-left: $bubble-gravatar-size + $bubble-gravatar-space; margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
} }
&::before { &.changeset {
content: ""; h4 + p {
display: block; margin-bottom: 0;
position: absolute; padding-bottom: $bubble-padding-vertical;
z-index: -1; background-color: $bubble-bg;
top: -($line-height-computed + 2px); font-size: $font-size-list;
left: 22px;
width: 4px;
height: $line-height-computed;
background-color: darken($body-bg, 5%);
}
.tabs + &::before { > a:first-child {
display: none; font-family: $font-family-monospace;
font-weight: $font-weight-bold;
}
}
} }
> div { > div {
border: 1px solid $issue-border;
border-radius: $panel-border-radius;
&:target { &: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;
}
@if $use-gravatars { @if $use-gravatars {
h4::before { > h4::before {
border-right-color: darken($issue-border, 25%); 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+ // For Redmine 4.0+
> div > .contextual { > div > .contextual,
> .contextual {
position: relative; position: relative;
z-index: 1; z-index: 1;
margin: 0; margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal; padding: $bubble-padding-vertical $bubble-padding-horizontal;
font-size: $font-size-list; font-size: $font-size-list;
> .journal-actions { a {
padding-right: $issue-attribute-padding-h; opacity: $icon-opacity;
> a { &:hover {
opacity: $icon-opacity; opacity: $icon-hover-opacity;
&:hover {
opacity: $icon-hover-opacity;
}
} }
} }
> a.journal-link { > a.journal-link {
padding-left: $issue-attribute-padding-h;
opacity: 1;
color: $gray-700; color: $gray-700;
&::before { &::before {
@@ -470,13 +553,15 @@ div.thumbnails {
} }
} }
> div > h4 { > div > h4,
> h4 {
margin: 0; margin: 0;
padding: $bubble-padding-vertical $bubble-padding-horizontal; padding: $bubble-padding-vertical $bubble-padding-horizontal;
border-radius: $panel-border-radius $panel-border-radius 0 0; border-radius: $panel-border-radius $panel-border-radius 0 0;
background-color: $issue-bg; background-color: $bubble-bg;
color: $gray-700; color: $gray-700;
font-size: $font-size-list; font-size: $font-size-list;
font-weight: $font-weight-normal;
a { a {
color: $gray-900; color: $gray-900;
@@ -492,7 +577,8 @@ div.thumbnails {
} }
@if $use-gravatars { @if $use-gravatars {
> div > h4 { > div > h4,
> h4 {
position: relative; position: relative;
&::before, &::before,
@@ -514,12 +600,12 @@ div.thumbnails {
margin-top: 1px; margin-top: 1px;
margin-left: 2px; margin-left: 2px;
border-width: 6px; border-width: 6px;
border-right-color: $issue-bg; border-right-color: $bubble-bg;
} }
&::before { &::before {
border-width: 7px; border-width: 7px;
border-right-color: $issue-border; border-right-color: $bubble-border;
} }
> .gravatar { > .gravatar {
@@ -531,35 +617,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 { .details {
margin: 0; margin: 0;
padding: $bubble-padding-vertical 0; padding: $bubble-padding-vertical 0;
padding-left: $bubble-padding-horizontal * 2.5; padding-left: $bubble-padding-horizontal + 20px;
list-style: none;
border-top: 1px solid mix($body-bg, $issue-border, 50%);
font-size: $font-size-list; 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 { img {
margin: 0 0 -3px 4px; margin: 0 0 -3px 4px;
} }
@@ -574,15 +652,13 @@ div.thumbnails {
} }
} }
.wiki, .wiki {
form {
padding: $issue-padding; padding: $issue-padding;
border-top: 1px solid $issue-border;
} }
form { form {
padding-top: 5px; padding: $bubble-padding-vertical $bubble-padding-horizontal $bubble-padding-horizontal;
background-color: $gray-100; background-color: $bubble-bg;
> p { > p {
margin-bottom: $issue-padding; margin-bottom: $issue-padding;
@@ -626,12 +702,10 @@ div.thumbnails {
} }
.private-notes { .private-notes {
> div { border-left-color: $brand-warning;
border-left-color: $brand-warning;
h4::before { > div > h4::before {
border-right-color: $brand-warning; border-right-color: $brand-warning;
}
} }
} }
@@ -659,22 +733,29 @@ span.private {
@media screen and (min-width: $screen-md-min) { @media screen and (min-width: $screen-md-min) {
width: 45%; width: 45%;
margin-left: $padding-side;
float: right; float: right;
+ #history {
margin-right: 45%;
padding-right: $padding-side;
}
} }
@media screen and (min-width: $screen-lg-min) { @media screen and (min-width: $screen-lg-min) {
width: 33%; width: 33%;
min-width: 28em;
+ #history {
margin-right: 33%;
}
} }
div.changeset { div.changeset {
margin-top: $line-height-computed / 2 + 2px * 2; margin-top: $line-height-computed / 2 + 2px * 2;
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
border: 1px solid $issue-border; border: 1px solid $bubble-border;
border-radius: $panel-border-radius; border-radius: $panel-border-radius;
background-color: $issue-bg; background-color: $bubble-bg;
font-size: $font-size-list; font-size: $font-size-list;
&:first-of-type { &:first-of-type {
@@ -687,7 +768,7 @@ span.private {
padding: $padding-base-vertical $padding-base-horizontal; padding: $padding-base-vertical $padding-base-horizontal;
color: $gray-700; color: $gray-700;
> a { > a:first-child {
font-family: $font-family-monospace; font-family: $font-family-monospace;
font-weight: $font-weight-bold; font-weight: $font-weight-bold;
} }
@@ -707,7 +788,7 @@ span.private {
> .wiki { > .wiki {
padding: $padding-base-vertical $padding-base-horizontal; 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; background-color: $body-bg;
} }
} }

View File

@@ -138,6 +138,23 @@
@include nice-shadow(2); @include nice-shadow(2);
padding: 3px; padding: 3px;
border-radius: $panel-border-radius; 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 { .ui-menu-item {
@@ -298,3 +315,9 @@ img.ui-datepicker-trigger {
} }
} }
} }
.ui-tooltip {
@include nice-shadow(1);
padding: $padding-small-vertical $padding-small-horizontal;
border: 0 none;
}

View File

@@ -25,10 +25,16 @@ table.list {
padding: $table-cell-padding; padding: $table-cell-padding;
border: 2px solid $table-border-color; border: 2px solid $table-border-color;
border-width: $table-list-header-border; border-width: $table-list-header-border;
background-color: $body-bg; background-color: $table-list-header-bg;
color: $gray-700; color: $gray-700;
vertical-align: bottom; vertical-align: bottom;
@if $table-list-header-bg == $body-bg {
@at-root .box & {
background-color: $panel-bg;
}
}
a { a {
color: $gray-900; color: $gray-900;
} }
@@ -80,6 +86,10 @@ table.list {
padding-right: $table-cell-padding; padding-right: $table-cell-padding;
padding-left: $table-cell-padding; padding-left: $table-cell-padding;
&:first-child {
padding-right: 0;
}
input { input {
margin: 2px 0 0; margin: 2px 0 0;
} }
@@ -255,7 +265,7 @@ tr.issue {
} }
tr { tr {
span.expander { span.expander:not(.icon) {
margin-left: 0; margin-left: 0;
padding-left: 8px; padding-left: 8px;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color))); background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
@@ -265,7 +275,7 @@ tr {
user-select: none; user-select: none;
} }
&.open span.expander { &.open span.expander:not(.icon) {
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color))); background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
} }
} }
@@ -682,6 +692,15 @@ table.list.enumerations {
// //
.query-totals { .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 { > span {
margin-right: $padding-base-horizontal; margin-right: $padding-base-horizontal;

View File

@@ -33,6 +33,11 @@
margin-bottom: $panel-body-padding-vertical; margin-bottom: $panel-body-padding-vertical;
} }
#login-submit {
padding-top: $padding-base-vertical;
padding-bottom: $padding-base-vertical;
}
table { table {
margin: auto; margin: auto;
table-layout: fixed; table-layout: fixed;

View File

@@ -300,6 +300,12 @@
} }
} }
#checklist-menu.ui-menu {
a {
padding: 2px 0 2px 24px;
}
}
// //
// Redmine custom menu // Redmine custom menu

View File

@@ -60,8 +60,6 @@ p {
} }
&.progress-info { &.progress-info {
margin-top: -4px;
margin-bottom: 0;
clear: left; clear: left;
color: $gray-700; color: $gray-700;
font-size: 80%; font-size: 80%;

View File

@@ -1,9 +1,10 @@
.hidden,
.mobile-show { .mobile-show {
display: none; display: none;
} }
// stylelint-disable selector-max-compound-selectors // stylelint-disable selector-max-compound-selectors
.theme-Purplemine2 { body {
@media screen and (max-width: $redmine-responsive-max) { @media screen and (max-width: $redmine-responsive-max) {
.flyout-menu + div { .flyout-menu + div {
#header { #header {
@@ -78,6 +79,15 @@
} }
} }
#content {
overflow: auto;
}
#ajax-indicator {
left: 50%;
width: 200px;
}
.mobile-toggle-button { .mobile-toggle-button {
width: $responsive-header-height; width: $responsive-header-height;
height: $responsive-header-height; height: $responsive-header-height;
@@ -113,6 +123,43 @@
} }
} }
&__sidebar {
p {
padding-left: $padding-large-horizontal;
}
}
ul {
li:nth-child(n) {
a {
height: auto;
padding: $padding-large-vertical $padding-large-horizontal;
line-height: $line-height-base;
}
}
&.queries {
li {
display: flex;
a {
flex: 1 1 auto;
}
.icon-only {
flex: 0 0 40px;
padding-right: 0;
padding-left: 0;
text-align: center;
&::before {
line-height: inherit;
}
}
}
}
}
a { a {
&, &,
&:hover, &:hover,
@@ -131,11 +178,48 @@
} }
} }
h3 { h3,
h4 {
height: auto;
margin: 0;
padding: $padding-base-vertical $padding-base-horizontal;
border-top: 1px solid $flyout-menu-header-border; border-top: 1px solid $flyout-menu-header-border;
border-bottom: 1px solid $flyout-menu-header-border; border-bottom: 1px solid $flyout-menu-header-border;
background-color: $flyout-menu-header-bg; background-color: $flyout-menu-header-bg;
color: $flyout-menu-header-text; color: $flyout-menu-header-text;
line-height: $line-height-base;
+ p {
margin-top: $padding-large-vertical;
}
}
h4 {
padding: 0 $padding-base-horizontal;
}
form {
padding-left: 0;
> ul {
margin-left: 0;
li:nth-child(n) {
padding-left: $padding-large-horizontal;
line-height: inherit;
label {
a {
display: block;
padding: $padding-base-vertical $padding-base-horizontal;
}
}
}
+ p {
margin-top: $padding-large-vertical;
}
}
} }
#admin-menu { #admin-menu {
@@ -333,7 +417,7 @@
} }
} }
#issue-changesets { div#issue-changesets {
div.changeset { div.changeset {
padding: 0; padding: 0;
} }

View File

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

View File

@@ -330,6 +330,7 @@
&:hover, &:hover,
&:focus { &:focus {
background-color: $main-menu-bg-hover;
box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover; box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover;
text-decoration: none; text-decoration: none;
} }
@@ -337,6 +338,7 @@
&.selected { &.selected {
padding-bottom: $main-menu-padding-vertical - $main-menu-shadow-width; padding-bottom: $main-menu-padding-vertical - $main-menu-shadow-width;
border-bottom: 3px solid $main-menu-shadow-active; border-bottom: 3px solid $main-menu-shadow-active;
background-color: $main-menu-bg-active;
box-shadow: none; box-shadow: none;
color: $main-menu-link-active; color: $main-menu-link-active;
font-weight: $font-weight-semi-bold; font-weight: $font-weight-semi-bold;
@@ -421,6 +423,10 @@
box-sizing: border-box; box-sizing: border-box;
height: $tabs-height - 1px; height: $tabs-height - 1px;
background-color: $main-menu-bg; background-color: $main-menu-bg;
&:hover {
background-color: $main-menu-bg-hover;
}
} }
} }

View File

@@ -116,6 +116,8 @@ div.wiki {
} }
blockquote { blockquote {
margin-bottom: 1em;
> :first-child { > :first-child {
margin-top: 0; margin-top: 0;
} }
@@ -157,7 +159,8 @@ div.wiki {
} }
li > p { li > p {
margin-top: ($line-height-computed / 2); margin-top: .25em;
margin-bottom: 0;
} }
table { table {
@@ -203,10 +206,9 @@ div.wiki {
pre { pre {
width: auto; width: auto;
margin-bottom: 1.15em; margin-bottom: 1.15em;
padding: 4px 8px; padding: 12px 15px;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
border: 1px solid rgba($gray-500, .45);
border-radius: $border-radius-base; border-radius: $border-radius-base;
background-color: rgba($gray-500, .15); background-color: rgba($gray-500, .15);
font-size: $font-size-small; font-size: $font-size-small;
@@ -225,30 +227,27 @@ div.wiki {
} }
.toc { .toc {
display: table;
max-width: 45%;
margin-bottom: $line-height-computed; margin-bottom: $line-height-computed;
margin-left: 0; margin-left: 0;
padding: 0; padding: $padding-small-vertical $padding-small-horizontal;
list-style-type: none; list-style-type: none;
border: 1px solid $toc-border;
border-radius: $border-radius-base;
background-color: $toc-bg;
box-shadow: $toc-shadow;
color: $toc-text;
font-size: $font-size-small;
&.right, a {
&.left { color: $toc-link;
max-width: 45%; font-weight: $font-weight-normal;
padding: 8px; text-decoration: none;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
background-color: $highlight-bg;
box-shadow: $panel-shadow;
font-size: $font-size-small;
a { &:hover {
color: $highlight-text; color: $toc-link-hover;
font-weight: $font-weight-normal; text-decoration: underline;
text-decoration: none;
&:hover {
color: darken($highlight-text, 10%);
text-decoration: underline;
}
} }
} }

View File

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

File diff suppressed because one or more lines are too long