Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ef0ebd380 | ||
|
|
fce7bcffd3 | ||
|
|
32366f5679 | ||
|
|
13297491d0 | ||
|
|
6dc24b6911 | ||
|
|
25e00a217d | ||
|
|
54d0136aa5 | ||
|
|
670830cf3e | ||
|
|
06ac7eff64 | ||
|
|
f87c391547 | ||
|
|
8bf71cf947 | ||
|
|
bfa2376653 | ||
|
|
cfec912d12 | ||
|
|
8c26cacebc | ||
|
|
71fb78a3b7 | ||
|
|
dfce2e0b13 | ||
|
|
491fde75bb | ||
|
|
5e671bb9b7 | ||
|
|
604a00561b | ||
|
|
1d5b42235e | ||
|
|
2b492be04a | ||
|
|
4245d5daf6 | ||
|
|
06e7e4fded | ||
|
|
36000bd02c | ||
|
|
510a32ec41 | ||
|
|
80105407af | ||
|
|
6e9e834816 | ||
|
|
0d1daf1a22 |
22
.github/workflows/lint.yml
vendored
22
.github/workflows/lint.yml
vendored
@@ -1,6 +1,11 @@
|
||||
name: Run linters
|
||||
|
||||
on: push
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'v*.*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
@@ -8,7 +13,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Use Node.js 10.x
|
||||
uses: actions/setup-node@v1
|
||||
@@ -18,14 +23,11 @@ jobs:
|
||||
- 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: Eslint
|
||||
run: npm run lint:js
|
||||
|
||||
- name: Stylelint
|
||||
run: npm run lint:sass
|
||||
|
||||
- name: Check build
|
||||
run: npm run build
|
||||
|
||||
12
.lintstagedrc.js
Normal file
12
.lintstagedrc.js
Normal file
@@ -0,0 +1,12 @@
|
||||
module.exports = {
|
||||
"src/**/*.js": files => [
|
||||
`eslint "${files.join('" "')}"`,
|
||||
'grunt js',
|
||||
'git add javascripts/'
|
||||
],
|
||||
"src/**/*.scss": files => [
|
||||
`stylelint "${files.join('" "')}"`,
|
||||
'grunt css',
|
||||
'git add stylesheets/ plugins/'
|
||||
],
|
||||
}
|
||||
26
README.md
26
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
A free Redmine theme for modern browsers.
|
||||
|
||||
 [](http://standardjs.com/) [](https://actions-badge.atrox.dev/mrliptontea/PurpleMine2/goto) [](https://github.com/mrliptontea/PurpleMine2/issues)
|
||||
 [](http://standardjs.com/)  [](https://github.com/mrliptontea/PurpleMine2/issues)
|
||||
|
||||
---
|
||||
|
||||
@@ -56,6 +56,30 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
|
||||
|
||||
## Changelog
|
||||
|
||||
v2.12.0 (2020-08-01):
|
||||
|
||||
* Fixed #196 and #199: text wrapping in certain column types.
|
||||
* Merged #203: fixed pagination overlapping wiki content.
|
||||
|
||||
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.
|
||||
|
||||
File diff suppressed because one or more lines are too long
4166
package-lock.json
generated
4166
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
25
package.json
25
package.json
@@ -25,29 +25,36 @@
|
||||
"lint": "npm run -S lint:js && npm run -S lint:sass"
|
||||
},
|
||||
"dependencies": {
|
||||
"autoprefixer": "^9.7.5",
|
||||
"autoprefixer": "^9.8.0",
|
||||
"grunt": "^1.1.0",
|
||||
"grunt-contrib-uglify": "^4.0.1",
|
||||
"grunt-contrib-watch": "^1.1.0",
|
||||
"grunt-postcss": "^0.9.0",
|
||||
"grunt-sass": "^3.1.0",
|
||||
"node-sass": "^4.13.1",
|
||||
"node-sass": "^4.14.1",
|
||||
"sass-inline-svg": "^1.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^6.8.0",
|
||||
"eslint": "^7.1.0",
|
||||
"eslint-config-standard": "^14.1.1",
|
||||
"eslint-plugin-import": "^2.20.1",
|
||||
"eslint-plugin-node": "^11.0.0",
|
||||
"eslint-plugin-import": "^2.20.2",
|
||||
"eslint-plugin-node": "^11.1.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"
|
||||
"husky": "^4.2.5",
|
||||
"lint-staged": "^10.2.6",
|
||||
"stylelint": "^13.5.0",
|
||||
"stylelint-order": "^4.0.0",
|
||||
"stylelint-scss": "^3.17.2"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
"> 1%",
|
||||
"not dead"
|
||||
]
|
||||
],
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged --relative"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
4
src/sass/_functions.scss
Normal file
4
src/sass/_functions.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
// Functions
|
||||
// --------------------------------------------------
|
||||
|
||||
@import "functions/parse-length";
|
||||
@@ -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
|
||||
@@ -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;
|
||||
@@ -714,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);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@import "variables";
|
||||
@import "functions";
|
||||
@import "mixins";
|
||||
|
||||
@import "lib/normalize";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -94,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
|
||||
//
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -148,6 +144,7 @@ p.buttons,
|
||||
//
|
||||
|
||||
#issue-form,
|
||||
.mypage-box,
|
||||
.journal,
|
||||
.edit_news,
|
||||
.edit_content,
|
||||
@@ -159,6 +156,21 @@ p.buttons,
|
||||
}
|
||||
|
||||
|
||||
//== Apply + clear
|
||||
//
|
||||
|
||||
form {
|
||||
input,
|
||||
button,
|
||||
select {
|
||||
~ a {
|
||||
margin-left: ceil($btn-padding-horizontal-small / 2);
|
||||
line-height: $input-height-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Action buttons group
|
||||
//
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -118,12 +118,18 @@ 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%;
|
||||
|
||||
&.wiki {
|
||||
position: static;
|
||||
padding-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//== Responsive autoscroll
|
||||
@@ -252,6 +258,10 @@ img {
|
||||
@include check;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.gravatar {
|
||||
margin-right: $padding-small-vertical;
|
||||
}
|
||||
}
|
||||
|
||||
.roles-selection {
|
||||
@@ -279,11 +289,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 {
|
||||
@@ -335,22 +347,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;
|
||||
@@ -930,6 +926,10 @@ div.table-list.boards {
|
||||
.author {
|
||||
color: $gray-700;
|
||||
|
||||
.flyout-menu & {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.user {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
@@ -424,7 +424,6 @@ label.block {
|
||||
|
||||
label[for="issue_description"] + a {
|
||||
display: inline-block;
|
||||
margin-top: $input-padding-vertical + 1px;
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
@@ -628,6 +627,10 @@ label[for="closed"] {
|
||||
label {
|
||||
@include check-list;
|
||||
}
|
||||
|
||||
.gravatar {
|
||||
margin-right: $padding-small-vertical;
|
||||
}
|
||||
}
|
||||
|
||||
#watchers_inputs {
|
||||
@@ -743,7 +746,9 @@ fieldset#filters {
|
||||
select,
|
||||
label,
|
||||
.icon,
|
||||
.icon-only {
|
||||
.icon-only,
|
||||
> span > a {
|
||||
line-height: inherit;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
@@ -267,7 +314,7 @@ a.icon-del {
|
||||
}
|
||||
|
||||
.icon-zoom-in + .icon-zoom-out {
|
||||
margin-left: 5px;
|
||||
margin-left: $padding-small-vertical;
|
||||
}
|
||||
|
||||
|
||||
@@ -289,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;
|
||||
@@ -402,8 +449,6 @@ a.icon-del {
|
||||
|
||||
&::before {
|
||||
content: $fa-var-arrows-v;
|
||||
width: 16px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&.ajax-loading {
|
||||
@@ -430,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;
|
||||
@@ -441,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; }
|
||||
|
||||
|
||||
@@ -127,6 +127,7 @@
|
||||
}
|
||||
|
||||
.ui-sortable-helper {
|
||||
background-color: $body-bg;
|
||||
@include nice-shadow(4);
|
||||
}
|
||||
|
||||
@@ -320,4 +321,12 @@ img.ui-datepicker-trigger {
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -52,7 +52,7 @@ table.list {
|
||||
vertical-align: top;
|
||||
|
||||
&.icon {
|
||||
padding-left: $table-cell-padding + 20px;
|
||||
padding-left: $table-cell-padding + $icon-width;
|
||||
}
|
||||
|
||||
&.id,
|
||||
@@ -86,8 +86,10 @@ table.list {
|
||||
padding-right: $table-cell-padding;
|
||||
padding-left: $table-cell-padding;
|
||||
|
||||
&:first-child {
|
||||
padding-right: 0;
|
||||
@if (parse-length($table-list-item-border, right) == 0) {
|
||||
&:first-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
@@ -137,10 +139,10 @@ table.list {
|
||||
white-space: nowrap;
|
||||
|
||||
a {
|
||||
padding-right: 5px;
|
||||
margin-right: $padding-small-vertical;
|
||||
|
||||
&.icon-only {
|
||||
padding: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,10 +193,15 @@ tr.issue {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
|
||||
.category,
|
||||
.enumeration,
|
||||
.list,
|
||||
.parent-subject,
|
||||
.parent,
|
||||
.relations,
|
||||
.string,
|
||||
.text,
|
||||
.subject,
|
||||
.category {
|
||||
.text {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
@@ -265,14 +272,31 @@ tr.issue {
|
||||
}
|
||||
|
||||
tr {
|
||||
span.expander:not(.icon) {
|
||||
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;
|
||||
span.expander {
|
||||
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:not(.icon) {
|
||||
@@ -284,6 +308,11 @@ td.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td.assigned_to,
|
||||
td.last_updated_by {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.issue-report {
|
||||
table-layout: fixed;
|
||||
}
|
||||
@@ -345,13 +374,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;
|
||||
@@ -360,7 +389,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;
|
||||
@@ -369,8 +398,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -394,6 +431,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,
|
||||
@@ -649,7 +709,7 @@ table.files {
|
||||
|
||||
tr.file td {
|
||||
&.filename {
|
||||
padding-left: 20px + $table-cell-padding;
|
||||
padding-left: $icon-width + $table-cell-padding;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
@@ -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,16 +669,32 @@
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.inline-flex {
|
||||
display: inline-flex;
|
||||
|
||||
body.controller-issues h2 & {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// stylelint-disable selector-max-compound-selectors
|
||||
body {
|
||||
@media screen and (max-width: $redmine-responsive-max) {
|
||||
@@ -131,7 +139,7 @@ body {
|
||||
|
||||
ul {
|
||||
li:nth-child(n) {
|
||||
a {
|
||||
a:not(.icon-only) {
|
||||
height: auto;
|
||||
padding: $padding-large-vertical $padding-large-horizontal;
|
||||
line-height: $line-height-base;
|
||||
@@ -147,13 +155,15 @@ body {
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,7 +234,7 @@ body {
|
||||
|
||||
#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
|
||||
@@ -259,7 +269,7 @@ body {
|
||||
}
|
||||
|
||||
.delete {
|
||||
flex: 0 0 24px;
|
||||
margin-right: $padding-large-vertical;
|
||||
margin-left: auto;
|
||||
float: none;
|
||||
text-align: center;
|
||||
@@ -425,6 +435,10 @@ body {
|
||||
|
||||
#admin-index > #admin-menu li {
|
||||
padding: 0;
|
||||
|
||||
a {
|
||||
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -172,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;
|
||||
}
|
||||
|
||||
@@ -315,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
|
||||
}
|
||||
|
||||
|
||||
49
src/sass/functions/_parse-length.scss
Normal file
49
src/sass/functions/_parse-length.scss
Normal 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);
|
||||
}
|
||||
@@ -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
Reference in New Issue
Block a user