Compare commits
141 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 636e276a53 | |||
|
|
8cece5570e | ||
|
|
134960a957 | ||
|
|
929227fbda | ||
|
|
89ace106b2 | ||
|
|
bc5965aee3 | ||
|
|
69821b6ee2 | ||
|
|
50919b24db | ||
|
|
7fb8542baf | ||
|
|
4cad934780 | ||
|
|
4d5350abcf | ||
|
|
ee5f7c953a | ||
|
|
9d2eed48f8 | ||
|
|
3275e1b9aa | ||
|
|
b8758b4705 | ||
|
|
431ab76b5b | ||
|
|
c80281367d | ||
|
|
a1f1307acc | ||
|
|
611472863d | ||
|
|
46041bc868 | ||
|
|
164909da8a | ||
|
|
188df5599e | ||
|
|
2e7e3ceb54 | ||
|
|
cdbe0a187e | ||
|
|
8e3bffc518 | ||
|
|
24bfb52f7a | ||
|
|
125e09a18c | ||
|
|
8c1e5a99a5 | ||
|
|
4e1d1e05d8 | ||
|
|
75b0b63b92 | ||
|
|
dbb04bea5c | ||
|
|
ea28de2898 | ||
|
|
947464dd92 | ||
|
|
95cb578d8f | ||
|
|
41143cf15f | ||
|
|
745962541b | ||
|
|
665ff99d15 | ||
|
|
b823dda2d9 | ||
|
|
bf14f9fa3c | ||
|
|
58c45cf28f | ||
|
|
0dc89601b4 | ||
|
|
df3bf34032 | ||
|
|
acd262667a | ||
|
|
052fdbc2cc | ||
|
|
3a541692fa | ||
|
|
d1684a8d99 | ||
|
|
6bdbd2de8a | ||
|
|
9b9b3ca37e | ||
|
|
c0fd6f355c | ||
|
|
8298f58ee0 | ||
|
|
77e10d6f3d | ||
|
|
2d41c73928 | ||
|
|
ac0fe3f164 | ||
|
|
5ffef0b09b | ||
|
|
9ee2f1410e | ||
|
|
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 | ||
|
|
e7500035e3 | ||
|
|
d3ed59dc9b | ||
|
|
edbe4feca8 | ||
|
|
942f23f2cb | ||
|
|
3fc4660203 | ||
|
|
1fa4a87da7 | ||
|
|
07a08db560 | ||
|
|
2eb5d83f59 | ||
|
|
1bdfab795a | ||
|
|
aa4c59a48c | ||
|
|
aaddd2e10b | ||
|
|
5c14dbbf62 | ||
|
|
f8609cbbbb | ||
|
|
6443eba8c2 | ||
|
|
70c88722fb | ||
|
|
4b10532cea | ||
|
|
77a9633984 | ||
|
|
92e92e75b9 | ||
|
|
e4c69d5d86 | ||
|
|
4d82879d90 | ||
|
|
a2b49b6ff1 | ||
|
|
205109ac30 | ||
|
|
e981dc4ec0 | ||
|
|
955aca022e | ||
|
|
164391c6c2 | ||
|
|
e5b9b5fdf9 | ||
|
|
e7e68125b3 | ||
|
|
57a60673a7 | ||
|
|
136cf02394 | ||
|
|
9f7d02e511 | ||
|
|
6b64af35a5 | ||
|
|
e716b92e67 | ||
|
|
9418139adb | ||
|
|
ca3ead0abf | ||
|
|
7745e4b617 | ||
|
|
1207548232 | ||
|
|
9f451017c5 | ||
|
|
a28d215f31 | ||
|
|
22ec5e09f5 | ||
|
|
9371b797b3 | ||
|
|
924a5a94ed | ||
|
|
53fffa3b5c | ||
|
|
42e5ce1217 | ||
|
|
fc5b48aabe | ||
|
|
5e04839cfd | ||
|
|
ad138b9331 | ||
|
|
6a78cb45c1 | ||
|
|
b14206a585 | ||
|
|
a1d18834d3 | ||
|
|
df3e0fb696 | ||
|
|
d17f4d2542 | ||
|
|
51ba1deb36 | ||
|
|
b5d02128f5 | ||
|
|
aa8738c749 | ||
|
|
0282ba6695 | ||
|
|
0c4be053dc | ||
|
|
319f97d468 | ||
|
|
7bbdb230a8 |
10
.eslintrc.js
Normal file
@@ -0,0 +1,10 @@
|
||||
module.exports = {
|
||||
"extends": "standard",
|
||||
"globals": {
|
||||
"$": "readonly",
|
||||
"localStorage": "readonly",
|
||||
},
|
||||
"ignorePatterns": [
|
||||
"/javascripts/",
|
||||
],
|
||||
};
|
||||
52
.github/workflows/lint.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
name: Run linters
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'v*.*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16.x
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Eslint
|
||||
run: npm run lint:js
|
||||
|
||||
- name: Stylelint
|
||||
run: npm run lint:sass
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm ci --production
|
||||
|
||||
- name: Check build
|
||||
run: npm run build
|
||||
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/'
|
||||
],
|
||||
}
|
||||
11
.travis.yml
@@ -1,11 +0,0 @@
|
||||
dist: xenial
|
||||
language: node_js
|
||||
node_js:
|
||||
- 10
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
install:
|
||||
- npm install
|
||||
script:
|
||||
- npm run lint --silent
|
||||
337
CHANGELOG.md
Normal file
@@ -0,0 +1,337 @@
|
||||
v2.16.2 (2023-11-20):
|
||||
|
||||
* Fixed #268 calendar display with Redmine 5.1
|
||||
|
||||
v2.16.1 (2023-10-11):
|
||||
|
||||
* Fixed #266 typo of expanded icon class
|
||||
|
||||
v2.16.0 (2023-05-14):
|
||||
|
||||
* Update theme to make it work with 5.0.
|
||||
* Fixed issues #222, #233, #242, #245, #246, #253, and few others.
|
||||
|
||||
v2.15.0 (2021-05-23):
|
||||
|
||||
* Updated styles for Redmine 4.2.
|
||||
* Merged #225 (via #228): improved documents styles.
|
||||
|
||||
v2.14.0 (2021-01-27):
|
||||
|
||||
* Merged #220: fixed drag & drop behavior.
|
||||
|
||||
v2.13.0 (2020-09-26):
|
||||
|
||||
* Replaced node-sass with sass.
|
||||
* Resolved issues with `inline-svg` function in Node 14.x.
|
||||
|
||||
v2.12.1 (2020-08-11):
|
||||
|
||||
* Fixed #204 - missing context menu icons in Easy WBS plugin.
|
||||
|
||||
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.
|
||||
* Improved styling of some inline edit forms.
|
||||
|
||||
v2.10.1 (2020-04-06):
|
||||
|
||||
* Fixed #160: highlight color in jQuery UI menu, most notably in checklist plugin.
|
||||
|
||||
v2.10.0 (2020-04-05):
|
||||
|
||||
* Fixed #172 Collapsed/expended icons for completed versions.
|
||||
* Fixed #171 "Display" label in Gantt option.
|
||||
* Fixed #170 radio buttons in projects options.
|
||||
* Fixed #169 styles in the spent time tab.
|
||||
* Fixed #164: apply responsive overrides more generally
|
||||
* Fixed #159: wrapping long text in issue attributes.
|
||||
* Fixed #150: styling for query totals and expander in Agile plugin.
|
||||
* Fixed #148: full screen view for Dashboard plugin.
|
||||
* Fixed a "timeline" positioning in issue notes/changes.
|
||||
* Changed lightness of shades 50 and 950.
|
||||
* Changed loader styles.
|
||||
* Changed rouge syntax highlighter color scheme.
|
||||
|
||||
v2.9.1 (2020-02-22):
|
||||
|
||||
* Merged fix #155: $.load function removed from jQuery.
|
||||
* Fixed badge positioning in roadmap screen.
|
||||
|
||||
v2.9.0 (2020-01-30):
|
||||
|
||||
* Fixed #141: improved styling for issue edit form.
|
||||
* 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):
|
||||
|
||||
* Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin.
|
||||
|
||||
v2.6.0 (2019-06-13):
|
||||
|
||||
* Resolved #121: added support for [redmine_wiki_page_tree](https://github.com/ledsun/redmine_wiki_page_tree) plugin.
|
||||
|
||||
v2.5.0 (2019-06-05):
|
||||
|
||||
* Fixed #117, #118 and added many improvements to the responsive layout.
|
||||
|
||||
v2.4.0 (2019-06-02):
|
||||
|
||||
* Synchronized most application styles with Redmine's default theme.
|
||||
* Fixed #115: color overdue date in issue lists.
|
||||
|
||||
v2.3.1 (2019-05-09):
|
||||
|
||||
* Fixed #112: improved highlight contrast in text diffs.
|
||||
|
||||
v2.3.0 (2019-05-09):
|
||||
|
||||
* Fixed #107: nested lists in the sidebar via [Additionals](https://www.redmine.org/plugins/additionals) plugin.
|
||||
|
||||
v2.2.0 (2019-04-09):
|
||||
|
||||
* Fixed #101, #102: tooltip positioning
|
||||
|
||||
v2.1.1 (2019-03-23):
|
||||
|
||||
* Fixed sidebar toggler style when fixed layout is enabled
|
||||
* Fixed contextual dropdown padding in mobile view
|
||||
|
||||
v1.11.0 (2019-03-22):
|
||||
|
||||
* Backported fixes from v2:
|
||||
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
|
||||
* Fixed #90: regression in some sidebar layouts
|
||||
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
|
||||
* Fixed #94: subtasks indentation
|
||||
* Fixed styling of some flash messages
|
||||
* Fixed horizontal scrollbar appearing when sidebar is on the right
|
||||
* Fixed footer being mispositioned in Agile charts
|
||||
* Fixed positioning of admin menu icons for some plugins
|
||||
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
|
||||
* Added separator line between news on the news list
|
||||
* Improved Redmine 4.0 compatibility
|
||||
* Updated Font Awesome icons to 4.7.0
|
||||
|
||||
v2.1.0 (2019-03-22):
|
||||
|
||||
* Added CSS grid layout support (off by default because of IE support)
|
||||
* Fixed styling of some flash messages
|
||||
* Fixed horizontal scrollbar appearing when sidebar is on the right
|
||||
* Fixed footer being mispositioned in Agile charts
|
||||
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
|
||||
* Fixed positioning of admin menu icons for some plugins
|
||||
* Added separator line between news on the news list
|
||||
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
|
||||
* Fixed #94: subtasks indentation
|
||||
* Improved progress bar styling, avatar positioning, WYSIWYG button styling, wiki preview font sizes
|
||||
|
||||
v2.0.2 (2019-03-20):
|
||||
|
||||
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
|
||||
|
||||
v2.0.1 (2019-03-17):
|
||||
|
||||
* Fixed #90: regression in some sidebar layouts
|
||||
* Removed reduntant `abbr[title]` styles
|
||||
|
||||
v2.0 (2019-03-13):
|
||||
|
||||
* Refreshed, modernized look & feel
|
||||
* Added priority icons
|
||||
* Removed `$color-priorities` setting and styles
|
||||
* Improved Redmine 4.0 compatibility
|
||||
* Updated Font Awesome icons to 4.7.0
|
||||
|
||||
v1.10.0 (2019-03-12):
|
||||
|
||||
* Fixed #86: added support for redmine_hearts plugin
|
||||
|
||||
v1.9.0 (2019-03-01):
|
||||
|
||||
* Fixed #42: override some styles from [RM+](http://rmplus.pro) plugins
|
||||
* Merged #43: fixes for Redmine 3.3.2.devel
|
||||
* Support for responsive menu and further changes for Redmine 3.3.2.devel (fixes #26)
|
||||
* Improved styles for custom flash messages in wiki content (e.g. for [WikiNG](http://www.redmine.org/plugins/wiking) plugin)
|
||||
* Introduce project tiles on projects list page (enabled by default, can be switched off by setting `$use-project-tiles` to `false`)
|
||||
* Fixed #44: adjust width of the label column on the login form
|
||||
* Merged #49: German translations
|
||||
* Fixed #50: printed content on second page onwards was missing in Firefox
|
||||
* Fixed #51: a plugin dropdown in top menu could be too narrow
|
||||
* Fixed #52: delete watcher icon in the sidebar was missing
|
||||
* Fixed #54: long checkbox lists will be scrollable
|
||||
* Fixed #62: anchors won't scroll the page
|
||||
* Fixed #69: fixed "remember me" checkbox layout on login page
|
||||
* Fixed #78: files not visible on list in wiki when there is a lot of them
|
||||
* Updated dependencies
|
||||
* Fixed #81: top watchers checkboxes were not visible on Firefox
|
||||
* Removed `checkbox` and `radio` mixins in favour of `check`
|
||||
* Fixed #83: editor tabs layout in Redmine 4.0
|
||||
|
||||
v1.8.0 (2016-11-20):
|
||||
|
||||
* Fixed #19: missing text wrapping for long text custom fields
|
||||
* Fixed #20: applied Font Awesome font-family for icons in Time Tracker overview
|
||||
* Fixed duplicated pencil icon for Description in issue form in Redmine 3.1.2+
|
||||
* Fixed #21: added styling for compatibility with layout changes in Redmine 3.2.0
|
||||
* Fixed #23: set width for progress bars
|
||||
* Fixed #25: proper styles for pagination
|
||||
* Fixed #28: correct icon will be displayed for users that cannot edit notes in journal
|
||||
* Fixed #30: styles will now compile with latest Sass
|
||||
* Fixed #32, #33: improve @shawndibble's styles for new main menu styles in Redmine 3.3
|
||||
* Various small visual tweaks
|
||||
* Fixed #34: project breadcrumbs in the header should wrap nicely
|
||||
* Fixed #35: `.icon-only` class should now display only icons, buttons with icons should de displayed correctly with Font-Awesome disabled
|
||||
* Fixed #36: npm dependencies can be installed on production environments + update grunt to its latest version
|
||||
* Fixed #37: added support for drag'n'drop re-ordering in issue statuses, roles, and trackers settings
|
||||
* Fixed #38: corrected z-index for dropdown new item menu on backlogs page (thanks to @futaz, see PR #39)
|
||||
* Changed indentation to 2 spaces (to match with Redmine's coding style)
|
||||
* Introduced [autoprefixer](https://github.com/postcss/autoprefixer) via [PostCSS](http://postcss.org)
|
||||
* Updated [scss-lint](https://github.com/brigade/scss-lint) rules
|
||||
* Added [JavaScript Standard Style](http://standardjs.com)
|
||||
|
||||
v1.7.2 (2015-10-12):
|
||||
|
||||
* Fixed `.pagination` float in project members settings
|
||||
* Lists' cells are aligned to center by default (as in Redmine's default theme)
|
||||
|
||||
v1.7.1 (2015-10-10):
|
||||
|
||||
+ Improved styling for [Stuff To Do][stuff_to_do] plugin
|
||||
|
||||
v1.7.0 (2015-09-25):
|
||||
|
||||
* Added styles for optgroup (Firefox only)
|
||||
* Fixed #13: #header was missing clearfix and was breaking the layout is some cases
|
||||
* Coloring issue's title instead of link in Gantt diagram for overdue issues
|
||||
* Updated npm packages: grunt-sass from 0.18.0 to 1.0.0 and grunt-contrib-uglify 0.7.0 to 0.9.1
|
||||
* Use flexbox layout by default (can be changed by setting `$flexbox-layout` to `false`)
|
||||
* Fixed animation issue when showing sidebar
|
||||
* Slightly modified buttons' style
|
||||
* Few visual tweaks: nicer shadows, improved datepickers layout
|
||||
+ Configurable list borders and highlighting of hovered and even/odd rows
|
||||
+ Introduce `$pagination-padding-` variables and make pagination buttons' height equal to buttons by default
|
||||
* Fixed #16: remove `white-space: nowrap` from external links to prevent breaking the page with flexbox layout
|
||||
* Fixed colored trackers in tooltips in Backlogs plugin
|
||||
* Fixed broken codebutton modal after making buttons wider
|
||||
* Changed the license to MIT
|
||||
|
||||
v1.6.0 (2015-06-10):
|
||||
|
||||
* Fixed #8: Setting `$top-menu-collapse` to `true` will enable script allowing to toggle if top menu should be collapsed (no wrapping) or expanded (wrapped, with auto height)
|
||||
+ Header matching current URL fragment will have `#` prepended
|
||||
+ Introduced `$font-weight-normal` and `$font-weight-bold` variables to give better control on the appearance of text with custom fonts
|
||||
* Fixed #9: Added `$main-menu-collapse` and applied the same logic as in #8
|
||||
* Fixed #12: Removed `display: block` from issue's subject link to allow context menu to popup upon right click next to subject
|
||||
* Resolved #11: Company logo can be added to the header
|
||||
|
||||
v1.5.0 (2015-04-15):
|
||||
|
||||
* Fixed #5: Added default style for colored issue links.
|
||||
* Introduced `$tracker-colors-map` and removed `$tracker-X-bg` variables.
|
||||
See d220db1 comments for more details.
|
||||
* Fixed #6: Added default padding for table cells.
|
||||
|
||||
v1.4.1 (2015-04-14):
|
||||
|
||||
* Fixed #3: Closed tasks will be more appreciable.
|
||||
|
||||
v1.4.0 (2015-04-10):
|
||||
|
||||
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
|
||||
* Fixed bottom margin of `pre` tag
|
||||
+ Added a few helper classes from Bootstrap
|
||||
* WYSIWYG's icons will squeeze a little bit on smaller screens
|
||||
* Images in headers will be aligned to the middle vertically
|
||||
+ Introduced `text-normal` class for resetting font's weight
|
||||
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
|
||||
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
|
||||
* Fixed attachments div's layout for wiki pages
|
||||
|
||||
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
|
||||
|
||||
v1.3.0 (2015-04-01):
|
||||
|
||||
* Backlogs: make it possible to click on empty field
|
||||
* Corrected issue form columns widths so they will be equal in all fieldsets
|
||||
* Changesets will look similar to issue's journal
|
||||
+ Improved revision page layout and added Font Awesome icons
|
||||
+ Improved file content view
|
||||
* Fixed #1: Font Awesome icons will no longer break plugins' icons
|
||||
+ Introduced styles for [People][redmine_crm_people] plugin
|
||||
* Enhanced styles for activities list
|
||||
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
|
||||
* Fixed look of collapsible arrow in Firefox
|
||||
+ Overrode Redmine's revision graph function to make it look better
|
||||
+ Animated collapsible fieldsets
|
||||
+ Custom image based icons changed to base64 embedded data
|
||||
|
||||
v1.2.0 (2015-03-03):
|
||||
|
||||
* Fixed .warning style
|
||||
+ Coloring status on issue page (it'll look like label)
|
||||
* Fixed master backlog sub-menu accessibility
|
||||
+ Changed font weight to normal for sub-projects in project list
|
||||
* Fixed watch task path for .js
|
||||
- Removed unnecessary classes from .sidebar-toggler
|
||||
* Fixed external link icon, when URI contains the word 'edit'
|
||||
* Fixed wiki page headers links font-size
|
||||
+ Changed some trackers default colors
|
||||
+ Bolded user name on issue page if it's current user
|
||||
* Issue's journal appearance changed once again
|
||||
+ Some improvements in wiki formatting
|
||||
+ Introduced HistoryTabs for filtering issue journals
|
||||
* Improved issue page styles and adjusted default priority colors
|
||||
* Backlogs: added delay before hiding backlog menu
|
||||
* Changed ancestor project name in top to equal font size, but different weight
|
||||
* Fixed context menu position regression introduced by sidebar toggle
|
||||
|
||||
v1.1.0 (2015-02-15):
|
||||
|
||||
+ Changed issue's journal appearance
|
||||
+ jQuery UI menus look improved
|
||||
+ Removed box-shadow from boxes
|
||||
+ Bumped grunt-sass version
|
||||
+ Toggling sidebar visibility
|
||||
+ Recompressed images
|
||||
+ Changelog added
|
||||
|
||||
v1.0.0 (2015-02-06):
|
||||
|
||||
Initial version
|
||||
@@ -4,11 +4,11 @@ module.exports = function (grunt) {
|
||||
|
||||
sass: {
|
||||
options: {
|
||||
implementation: require('node-sass'),
|
||||
implementation: require('sass'),
|
||||
sourceMap: false,
|
||||
outputStyle: 'compressed',
|
||||
functions: {
|
||||
'inline-svg': require('sass-inline-svg')('./svg', {
|
||||
'inline-svg($path, $selectors: null)': require('@liquid-js/sass-inline-svg')('./svg', {
|
||||
optimize: true,
|
||||
encodingFormat: 'uri'
|
||||
})
|
||||
@@ -38,7 +38,7 @@ module.exports = function (grunt) {
|
||||
postcss: {
|
||||
options: {
|
||||
processors: [
|
||||
require('autoprefixer')({ browsers: 'last 2 versions' })
|
||||
require('autoprefixer')()
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
224
README.md
@@ -1,15 +1,13 @@
|
||||
# PurpleMine 2
|
||||
|
||||
A free Redmine theme for modern browsers.
|
||||
A free Redmine 3.0+ theme written in SCSS.
|
||||
|
||||
 [](https://travis-ci.org/mrliptontea/PurpleMine2) [](https://github.com/mrliptontea/PurpleMine2/issues) [](http://standardjs.com/)
|
||||
 [](http://standardjs.com/)  [](https://github.com/mrliptontea/PurpleMine2/issues)
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
Compatible with Redmine 3.0+ and browsers: IE10+/Edge, latest Firefox and Google Chrome (others were not tested).
|
||||
|
||||
It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of [Bootstrap][bootstrap-sass] like mixins, structure, and stuff.
|
||||
|
||||
## Main features
|
||||
@@ -18,7 +16,7 @@ It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of
|
||||
* Github-like wiki content look,
|
||||
* Sidebar moved to the left for better ergonomy,
|
||||
* Coloring trackers links (on lists, issue pages and even in the wiki content),
|
||||
* Highlighting issues priority on the list and on the issue page,
|
||||
* Jira-inspired priority icons,
|
||||
* Toggling sidebar visibility,
|
||||
* Easy to customize via variables.
|
||||
|
||||
@@ -56,221 +54,7 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
|
||||
|
||||
## Changelog
|
||||
|
||||
v2.3.0 (2019-05-09):
|
||||
|
||||
* Fixed #107: nested lists in the sidebar via [Additionals](https://www.redmine.org/plugins/additionals) plugin.
|
||||
|
||||
v2.2.0 (2019-04-09):
|
||||
|
||||
* Fixed #101, #102: tooltip positioning
|
||||
|
||||
v2.1.1 (2019-03-23):
|
||||
|
||||
* Fixed sidebar toggler style when fixed layout is enabled
|
||||
* Fixed contextual dropdown padding in mobile view
|
||||
|
||||
v1.11.0 (2019-03-22):
|
||||
|
||||
* Backported fixes from v2:
|
||||
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
|
||||
* Fixed #90: regression in some sidebar layouts
|
||||
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
|
||||
* Fixed #94: subtasks indentation
|
||||
* Fixed styling of some flash messages
|
||||
* Fixed horizontal scrollbar appearing when sidebar is on the right
|
||||
* Fixed footer being mispositioned in Agile charts
|
||||
* Fixed positioning of admin menu icons for some plugins
|
||||
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
|
||||
* Added separator line between news on the news list
|
||||
* Improved Redmine 4.0 compatibility
|
||||
* Updated Font Awesome icons to 4.7.0
|
||||
|
||||
v2.1.0 (2019-03-22):
|
||||
|
||||
* Added CSS grid layout support (off by default because of IE support)
|
||||
* Fixed styling of some flash messages
|
||||
* Fixed horizontal scrollbar appearing when sidebar is on the right
|
||||
* Fixed footer being mispositioned in Agile charts
|
||||
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
|
||||
* Fixed positioning of admin menu icons for some plugins
|
||||
* Added separator line between news on the news list
|
||||
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
|
||||
* Fixed #94: subtasks indentation
|
||||
* Improved progress bar styling, avatar positioning, WYSIWYG button styling, wiki preview font sizes
|
||||
|
||||
v2.0.2 (2019-03-20):
|
||||
|
||||
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
|
||||
|
||||
v2.0.1 (2019-03-17):
|
||||
|
||||
* Fixed #90: regression in some sidebar layouts
|
||||
* Removed reduntant `abbr[title]` styles
|
||||
|
||||
v2.0 (2019-03-13):
|
||||
|
||||
* Refreshed, modernized look & feel
|
||||
* Added priority icons
|
||||
* Removed `$color-priorities` setting and styles
|
||||
* Improved Redmine 4.0 compatibility
|
||||
* Updated Font Awesome icons to 4.7.0
|
||||
|
||||
v1.10.0 (2019-03-12):
|
||||
|
||||
* Fixed #86: added support for redmine_hearts plugin
|
||||
|
||||
v1.9.0 (2019-03-01):
|
||||
|
||||
* Fixed #42: override some styles from [RM+](http://rmplus.pro) plugins
|
||||
* Merged #43: fixes for Redmine 3.3.2.devel
|
||||
* Support for responsive menu and further changes for Redmine 3.3.2.devel (fixes #26)
|
||||
* Improved styles for custom flash messages in wiki content (e.g. for [WikiNG](http://www.redmine.org/plugins/wiking) plugin)
|
||||
* Introduce project tiles on projects list page (enabled by default, can be switched off by setting `$use-project-tiles` to `false`)
|
||||
* Fixed #44: adjust width of the label column on the login form
|
||||
* Merged #49: German translations
|
||||
* Fixed #50: printed content on second page onwards was missing in Firefox
|
||||
* Fixed #51: a plugin dropdown in top menu could be too narrow
|
||||
* Fixed #52: delete watcher icon in the sidebar was missing
|
||||
* Fixed #54: long checkbox lists will be scrollable
|
||||
* Fixed #62: anchors won't scroll the page
|
||||
* Fixed #69: fixed "remember me" checkbox layout on login page
|
||||
* Fixed #78: files not visible on list in wiki when there is a lot of them
|
||||
* Updated dependencies
|
||||
* Fixed #81: top watchers checkboxes were not visible on Firefox
|
||||
* Removed `checkbox` and `radio` mixins in favour of `check`
|
||||
* Fixed #83: editor tabs layout in Redmine 4.0
|
||||
|
||||
v1.8.0 (2016-11-20):
|
||||
|
||||
* Fixed #19: missing text wrapping for long text custom fields
|
||||
* Fixed #20: applied Font Awesome font-family for icons in Time Tracker overview
|
||||
* Fixed duplicated pencil icon for Description in issue form in Redmine 3.1.2+
|
||||
* Fixed #21: added styling for compatibility with layout changes in Redmine 3.2.0
|
||||
* Fixed #23: set width for progress bars
|
||||
* Fixed #25: proper styles for pagination
|
||||
* Fixed #28: correct icon will be displayed for users that cannot edit notes in journal
|
||||
* Fixed #30: styles will now compile with latest Sass
|
||||
* Fixed #32, #33: improve @shawndibble's styles for new main menu styles in Redmine 3.3
|
||||
* Various small visual tweaks
|
||||
* Fixed #34: project breadcrumbs in the header should wrap nicely
|
||||
* Fixed #35: `.icon-only` class should now display only icons, buttons with icons should de displayed correctly with Font-Awesome disabled
|
||||
* Fixed #36: npm dependencies can be installed on production environments + update grunt to its latest version
|
||||
* Fixed #37: added support for drag'n'drop re-ordering in issue statuses, roles, and trackers settings
|
||||
* Fixed #38: corrected z-index for dropdown new item menu on backlogs page (thanks to @futaz, see PR #39)
|
||||
* Changed indentation to 2 spaces (to match with Redmine's coding style)
|
||||
* Introduced [autoprefixer](https://github.com/postcss/autoprefixer) via [PostCSS](http://postcss.org)
|
||||
* Updated [scss-lint](https://github.com/brigade/scss-lint) rules
|
||||
* Added [JavaScript Standard Style](http://standardjs.com)
|
||||
|
||||
v1.7.2 (2015-10-12):
|
||||
|
||||
* Fixed `.pagination` float in project members settings
|
||||
* Lists' cells are aligned to center by default (as in Redmine's default theme)
|
||||
|
||||
v1.7.1 (2015-10-10):
|
||||
|
||||
+ Improved styling for [Stuff To Do][stuff_to_do] plugin
|
||||
|
||||
v1.7.0 (2015-09-25):
|
||||
|
||||
* Added styles for optgroup (Firefox only)
|
||||
* Fixed #13: #header was missing clearfix and was breaking the layout is some cases
|
||||
* Coloring issue's title instead of link in Gantt diagram for overdue issues
|
||||
* Updated npm packages: grunt-sass from 0.18.0 to 1.0.0 and grunt-contrib-uglify 0.7.0 to 0.9.1
|
||||
* Use flexbox layout by default (can be changed by setting `$flexbox-layout` to `false`)
|
||||
* Fixed animation issue when showing sidebar
|
||||
* Slightly modified buttons' style
|
||||
* Few visual tweaks: nicer shadows, improved datepickers layout
|
||||
+ Configurable list borders and highlighting of hovered and even/odd rows
|
||||
+ Introduce `$pagination-padding-` variables and make pagination buttons' height equal to buttons by default
|
||||
* Fixed #16: remove `white-space: nowrap` from external links to prevent breaking the page with flexbox layout
|
||||
* Fixed colored trackers in tooltips in Backlogs plugin
|
||||
* Fixed broken codebutton modal after making buttons wider
|
||||
* Changed the license to MIT
|
||||
|
||||
v1.6.0 (2015-06-10):
|
||||
|
||||
* Fixed #8: Setting `$top-menu-collapse` to `true` will enable script allowing to toggle if top menu should be collapsed (no wrapping) or expanded (wrapped, with auto height)
|
||||
+ Header matching current URL fragment will have `#` prepended
|
||||
+ Introduced `$font-weight-normal` and `$font-weight-bold` variables to give better control on the appearance of text with custom fonts
|
||||
* Fixed #9: Added `$main-menu-collapse` and applied the same logic as in #8
|
||||
* Fixed #12: Removed `display: block` from issue's subject link to allow context menu to popup upon right click next to subject
|
||||
* Resolved #11: Company logo can be added to the header
|
||||
|
||||
v1.5.0 (2015-04-15):
|
||||
|
||||
* Fixed #5: Added default style for colored issue links.
|
||||
* Introduced `$tracker-colors-map` and removed `$tracker-X-bg` variables.
|
||||
See d220db1 comments for more details.
|
||||
* Fixed #6: Added default padding for table cells.
|
||||
|
||||
v1.4.1 (2015-04-14):
|
||||
|
||||
* Fixed #3: Closed tasks will be more appreciable.
|
||||
|
||||
v1.4.0 (2015-04-10):
|
||||
|
||||
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
|
||||
* Fixed bottom margin of `pre` tag
|
||||
+ Added a few helper classes from Bootstrap
|
||||
* WYSIWYG's icons will squeeze a little bit on smaller screens
|
||||
* Images in headers will be aligned to the middle vertically
|
||||
+ Introduced `text-normal` class for resetting font's weight
|
||||
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
|
||||
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
|
||||
* Fixed attachments div's layout for wiki pages
|
||||
|
||||
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
|
||||
|
||||
v1.3.0 (2015-04-01):
|
||||
|
||||
* Backlogs: make it possible to click on empty field
|
||||
* Corrected issue form columns widths so they will be equal in all fieldsets
|
||||
* Changesets will look similar to issue's journal
|
||||
+ Improved revision page layout and added Font Awesome icons
|
||||
+ Improved file content view
|
||||
* Fixed #1: Font Awesome icons will no longer break plugins' icons
|
||||
+ Introduced styles for [People][redmine_crm_people] plugin
|
||||
* Enhanced styles for activities list
|
||||
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
|
||||
* Fixed look of collapsible arrow in Firefox
|
||||
+ Overrode Redmine's revision graph function to make it look better
|
||||
+ Animated collapsible fieldsets
|
||||
+ Custom image based icons changed to base64 embedded data
|
||||
|
||||
v1.2.0 (2015-03-03):
|
||||
|
||||
* Fixed .warning style
|
||||
+ Coloring status on issue page (it'll look like label)
|
||||
* Fixed master backlog sub-menu accessibility
|
||||
+ Changed font weight to normal for sub-projects in project list
|
||||
* Fixed watch task path for .js
|
||||
- Removed unnecessary classes from .sidebar-toggler
|
||||
* Fixed external link icon, when URI contains the word 'edit'
|
||||
* Fixed wiki page headers links font-size
|
||||
+ Changed some trackers default colors
|
||||
+ Bolded user name on issue page if it's current user
|
||||
* Issue's journal appearance changed once again
|
||||
+ Some improvements in wiki formatting
|
||||
+ Introduced HistoryTabs for filtering issue journals
|
||||
* Improved issue page styles and adjusted default priority colors
|
||||
* Backlogs: added delay before hiding backlog menu
|
||||
* Changed ancestor project name in top to equal font size, but different weight
|
||||
* Fixed context menu position regression introduced by sidebar toggle
|
||||
|
||||
v1.1.0 (2015-02-15):
|
||||
|
||||
+ Changed issue's journal appearance
|
||||
+ jQuery UI menus look improved
|
||||
+ Removed box-shadow from boxes
|
||||
+ Bumped grunt-sass version
|
||||
+ Toggling sidebar visibility
|
||||
+ Recompressed images
|
||||
+ Changelog added
|
||||
|
||||
v1.0.0 (2015-02-06):
|
||||
|
||||
Initial version
|
||||
[Changelog](./CHANGELOG.md).
|
||||
|
||||
[SCSS]: http://sass-lang.com/
|
||||
[normalize.css]: https://github.com/necolas/normalize.css
|
||||
|
||||
15667
package-lock.json
generated
48
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "PurpleMine2",
|
||||
"description": "A free Redmine 2.6+ theme written in SCSS",
|
||||
"name": "purplemine",
|
||||
"description": "A free Redmine 3.0+ theme written in SCSS",
|
||||
"keywords": [
|
||||
"redmine",
|
||||
"theme",
|
||||
@@ -20,33 +20,41 @@
|
||||
"scripts": {
|
||||
"build": "grunt",
|
||||
"watch": "grunt watch",
|
||||
"lint:js": "standard",
|
||||
"lint:js": "eslint src/javascripts/",
|
||||
"lint:sass": "stylelint src/sass/**/*.scss",
|
||||
"lint": "npm run -S lint:js && npm run -S lint:sass"
|
||||
},
|
||||
"dependencies": {
|
||||
"autoprefixer": "^9.4.10",
|
||||
"grunt": "^1.0.3",
|
||||
"grunt-contrib-uglify": "^4.0.0",
|
||||
"@liquid-js/sass-inline-svg": "^2.0.0",
|
||||
"autoprefixer": "^9.8.8",
|
||||
"grunt": "^1.6.1",
|
||||
"grunt-contrib-uglify": "^5.2.2",
|
||||
"grunt-contrib-watch": "^1.1.0",
|
||||
"grunt-postcss": "^0.9.0",
|
||||
"grunt-sass": "^3.0.2",
|
||||
"node-sass": "^4.11.0",
|
||||
"sass-inline-svg": "^1.2.0"
|
||||
"grunt-sass": "^3.1.0",
|
||||
"sass": "^1.69.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"standard": "^12.0.1",
|
||||
"stylelint": "^10.0.1",
|
||||
"stylelint-order": "^3.0.0",
|
||||
"stylelint-scss": "^3.6.1"
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-config-standard": "^14.1.1",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^4.3.1",
|
||||
"eslint-plugin-standard": "^4.1.0",
|
||||
"husky": "^4.3.8",
|
||||
"lint-staged": "^10.5.4",
|
||||
"stylelint": "^13.13.1",
|
||||
"stylelint-order": "^4.1.0",
|
||||
"stylelint-scss": "^3.21.0"
|
||||
},
|
||||
"standard": {
|
||||
"globals": [
|
||||
"$",
|
||||
"localStorage"
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
"> 1%",
|
||||
"not dead"
|
||||
],
|
||||
"ignore": [
|
||||
"/javascripts"
|
||||
]
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged --relative"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,.25),0 1px 2px rgba(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 rgba(0,0,0,0);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 #dadce6;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}
|
||||
@@ -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,.25),0 1px 2px rgba(0,0,0,.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e4359;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:rgba(0,0,0,0);background-color:#fff}
|
||||
@@ -1 +1 @@
|
||||
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:#f00}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}
|
||||
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:red}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}
|
||||
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 64 KiB |
@@ -55,7 +55,7 @@ PurpleMine.HistoryTabs = (function () {
|
||||
|
||||
this._ = translations[this.lang]
|
||||
|
||||
if (this.$history.length > 0) {
|
||||
if (this.$history.length > 0 && $('#history > h3').length > 0) {
|
||||
buildTabs()
|
||||
markFirstOfTypes()
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ PurpleMine.MenuCollapse = (function () {
|
||||
}
|
||||
|
||||
for (var menu in this.menus) {
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (this.menus.hasOwnProperty(menu) && this.menus[menu].$el.length > 0) {
|
||||
handleMenu(menu)
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
|
||||
var revisionDotOverlay
|
||||
|
||||
$.each(commits, function (index, commit) {
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (!commit.hasOwnProperty('space')) {
|
||||
commit.space = 0
|
||||
}
|
||||
@@ -72,6 +73,7 @@ PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
|
||||
parentCommit = commitsByScmid[parentScmid]
|
||||
|
||||
if (parentCommit) {
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (!parentCommit.hasOwnProperty('space')) {
|
||||
parentCommit.space = 0
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ PurpleMine.SidebarToggler = (function () {
|
||||
this.sidebarVisible = true
|
||||
this.sidebarHiding = null
|
||||
this.$toggler = null
|
||||
this.$header = $('#header')
|
||||
this.$main = $('#main')
|
||||
this.$sidebar = $('#sidebar')
|
||||
this.lang = document.documentElement.lang
|
||||
@@ -42,13 +43,6 @@ PurpleMine.SidebarToggler = (function () {
|
||||
|
||||
this._ = translations[this.lang]
|
||||
|
||||
// Fix issue with context menu position
|
||||
if (this.$main.css('position') === 'relative') {
|
||||
$(window).load(function () {
|
||||
$('#context-menu').appendTo('#wrapper3')
|
||||
})
|
||||
}
|
||||
|
||||
handleSidebar()
|
||||
}
|
||||
|
||||
@@ -96,7 +90,7 @@ PurpleMine.SidebarToggler = (function () {
|
||||
'"></a>'
|
||||
instance.$toggler = $(togglerHtml)
|
||||
|
||||
instance.$main.append(instance.$toggler)
|
||||
instance.$header.append(instance.$toggler)
|
||||
instance.$toggler.on('click', instance.toggleSidebar)
|
||||
}
|
||||
|
||||
|
||||
4
src/sass/_functions.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
// Functions
|
||||
// --------------------------------------------------
|
||||
|
||||
@import "functions/parse-length";
|
||||
@@ -1,3 +1,5 @@
|
||||
@use "sass:math";
|
||||
|
||||
//
|
||||
// Variables
|
||||
// --------------------------------------------------
|
||||
@@ -14,6 +16,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 +26,7 @@ $issue-subject-large: true !default;
|
||||
$enable-sidebar-toggler: true !default;
|
||||
$wiki-page-more-vertical-space: true !default;
|
||||
$top-menu-collapse: false !default;
|
||||
$agile-board-customize: true !default;
|
||||
|
||||
|
||||
//== Colors
|
||||
@@ -43,7 +47,7 @@ $black: #000 !default;
|
||||
$gray: hsl(hue($indigo), 20%, 85%) !default;
|
||||
|
||||
$shade-map: (
|
||||
50: 90%,
|
||||
50: 87.5%,
|
||||
100: 80%,
|
||||
200: 65%,
|
||||
300: 40%,
|
||||
@@ -53,12 +57,12 @@ $shade-map: (
|
||||
700: 40%,
|
||||
800: 65%,
|
||||
900: 80%,
|
||||
950: 90%
|
||||
950: 87.5%
|
||||
) !default;
|
||||
|
||||
@function shade($color, $shade: 500) {
|
||||
$mixer: if($shade < 500, $white, $black);
|
||||
$saturation: if($shade < 500, 0, ($shade - 500) / 20);
|
||||
$saturation: if($shade < 500, 0, math.div($shade - 500, 20));
|
||||
@return saturate(mix($mixer, $color, map-get($shade-map, $shade)), $saturation);
|
||||
}
|
||||
|
||||
@@ -166,6 +170,12 @@ $wiki-font-size: 16px !default;
|
||||
$wiki-line-height: 1.6 !default;
|
||||
$wiki-preview-bg: $body-bg !default;
|
||||
|
||||
$toc-bg: $gray-50 !default;
|
||||
$toc-border: $gray-300 !default;
|
||||
$toc-text: $text-color !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;
|
||||
$toc-active-border: $link-color !default;
|
||||
@@ -215,6 +225,7 @@ $collapsible-max-height: 10000px !default;
|
||||
$table-cell-padding: 8px !default;
|
||||
$table-condensed-cell-padding: 5px !default;
|
||||
|
||||
$table-list-header-bg: $body-bg !default;
|
||||
$table-list-header-border: 0 0 2px !default;
|
||||
$table-list-item-border: 0 !default;
|
||||
$table-list-color-odd-rows: true !default;
|
||||
@@ -230,6 +241,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
|
||||
//
|
||||
@@ -296,6 +312,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
|
||||
//
|
||||
@@ -398,6 +473,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: (
|
||||
@@ -481,13 +557,13 @@ $header-title-line-height: $line-height-computed * 1.5 !default;
|
||||
|
||||
$responsive-header-height: 54px !default;
|
||||
|
||||
$flyout-menu-bg: shade($header-bg, 800) !default;
|
||||
$flyout-menu-bg: shade($header-bg, 700) !default;
|
||||
$flyout-menu-text: $white !default;
|
||||
$flyout-menu-link: $white !default;
|
||||
$flyout-menu-link-active-bg: $header-bg !default;
|
||||
$flyout-menu-link-active: $white !default;
|
||||
$flyout-menu-header-bg: shade($header-bg, 900) !default;
|
||||
$flyout-menu-header-border: shade($header-bg, 900) !default;
|
||||
$flyout-menu-link-active-bg: shade($header-bg, 50) !default;
|
||||
$flyout-menu-link-active: $text-color !default;
|
||||
$flyout-menu-header-bg: shade($header-bg, 800) !default;
|
||||
$flyout-menu-header-border: shade($header-bg, 800) !default;
|
||||
$flyout-menu-header-text: $white !default;
|
||||
|
||||
$quick-search-width: 200px !default;
|
||||
@@ -501,10 +577,11 @@ $logo-image-width: 60px !default;
|
||||
$logo-image-height: 40px !default;
|
||||
$logo-position-horizontal: $header-padding-vertical !default;
|
||||
$logo-position-vertical: center !default;
|
||||
$logo-space: floor($header-padding-vertical / 2) !default;
|
||||
$logo-space: floor($header-padding-vertical * .5) !default;
|
||||
|
||||
$main-menu-bg: $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-active: $black !default;
|
||||
$main-menu-border: $gray-400 !default;
|
||||
@@ -576,6 +653,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;
|
||||
@@ -604,7 +686,7 @@ $progress-bar-info-bg: $brand-info !default;
|
||||
$panel-body-padding-vertical: 15px !default;
|
||||
$panel-body-padding-horizontal: 15px !default;
|
||||
$panel-body-padding: $panel-body-padding-vertical $panel-body-padding-horizontal !default;
|
||||
$panel-color: $gray-900 !default;
|
||||
$panel-color: $text-color !default;
|
||||
$panel-bg: $gray-50 !default;
|
||||
$panel-border: $gray-400 !default;
|
||||
$panel-border-radius: $border-radius-base !default;
|
||||
@@ -640,10 +722,26 @@ $issue-attribute-padding-h: 5px !default;
|
||||
//== Speech "bubbles"
|
||||
//
|
||||
|
||||
$bubble-bg: $issue-bg !default;
|
||||
$bubble-border: $issue-border !default;
|
||||
$bubble-text: $issue-text !default;
|
||||
$bubble-gravatar-size: 24px !default;
|
||||
$bubble-gravatar-space: 12px !default;
|
||||
$bubble-padding-vertical: 8px !default;
|
||||
$bubble-padding-horizontal: 15px !default;
|
||||
$bubble-padding-horizontal: 12px !default;
|
||||
$bubble-target-border: saturate($brand-primary, 25%) !default;
|
||||
$bubble-target-shadow-alpha: .2 !default;
|
||||
|
||||
|
||||
//== Badges
|
||||
//
|
||||
|
||||
$badge-space: 2px !default;
|
||||
$badge-padding-v: 0 !default;
|
||||
$badge-padding-h: 5px !default;
|
||||
$badge-border-radius: $border-radius-base !default;
|
||||
$badge-font-size: $font-size-small !default;
|
||||
$badge-font-weight: $font-weight-bold !default;
|
||||
|
||||
|
||||
//== Media queries breakpoints
|
||||
@@ -690,3 +788,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: adjust-color($yellow, $hue: 2deg),
|
||||
background: scale-color(adjust-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";
|
||||
@@ -9,6 +10,7 @@
|
||||
//
|
||||
|
||||
@import "components/base";
|
||||
@import "components/badges";
|
||||
@import "components/buttons";
|
||||
@import "components/forms";
|
||||
@import "components/tabs";
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
list-style-type: none;
|
||||
|
||||
> a:not(.icon-only) {
|
||||
padding-left: $sidebar-padding-horizontal + 5px + 20px;
|
||||
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
|
||||
background-repeat: no-repeat;
|
||||
background-position: $sidebar-padding-horizontal center;
|
||||
}
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
padding-left: 5px + 20px;
|
||||
padding-left: 5px + $icon-width;
|
||||
background-position: 0 center;
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,13 @@ table.permissions {
|
||||
//== Workflows
|
||||
//
|
||||
|
||||
.controller-workflows {
|
||||
table.list,
|
||||
fieldset.collapsible {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
|
||||
table.transitions {
|
||||
td.enabled {
|
||||
background: $state-success;
|
||||
@@ -87,6 +94,29 @@ table.fields_permissions {
|
||||
}
|
||||
|
||||
|
||||
//== Custom fields -> Issues -> Key values
|
||||
//
|
||||
|
||||
#custom_field_enumerations {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
min-height: $input-height-base;
|
||||
padding: 1px 0;
|
||||
|
||||
.sort-handle,
|
||||
label {
|
||||
line-height: $input-height-base;
|
||||
}
|
||||
|
||||
label input {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Settings labels
|
||||
//
|
||||
|
||||
|
||||
59
src/sass/components/_badges.scss
Normal file
@@ -0,0 +1,59 @@
|
||||
tr.group .count,
|
||||
span.private,
|
||||
.badge {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
box-sizing: border-box;
|
||||
min-width: 1em;
|
||||
margin-right: $badge-space;
|
||||
margin-left: $badge-space;
|
||||
padding: $badge-padding-v $badge-padding-h;
|
||||
border: 1px solid;
|
||||
border-radius: $badge-border-radius;
|
||||
font-size: $badge-font-size;
|
||||
font-weight: $badge-font-weight;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
span.private,
|
||||
.badge-private {
|
||||
padding: ($badge-padding-v + 1px) ($badge-padding-h + 1px);
|
||||
border: 0;
|
||||
background: $brand-warning;
|
||||
color: $brand-text;
|
||||
|
||||
h3 & {
|
||||
font-size: $font-size-small-px;
|
||||
}
|
||||
}
|
||||
|
||||
tr.group .count,
|
||||
.badge-count {
|
||||
padding: ($badge-padding-v + 1px) ($badge-padding-h + 1px);
|
||||
border: 0;
|
||||
background: $brand-primary;
|
||||
color: $brand-text;
|
||||
}
|
||||
|
||||
.badge-status-open {
|
||||
border-color: $blue;
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
.badge-status-locked {
|
||||
border-color: $gray-600;
|
||||
color: $gray-600;
|
||||
}
|
||||
|
||||
.badge-status-closed {
|
||||
border-color: $green;
|
||||
color: $green;
|
||||
}
|
||||
|
||||
.badge-issues-count {
|
||||
border-color: $gray-400;
|
||||
background-color: $gray-100;
|
||||
}
|
||||
@@ -90,7 +90,7 @@ h4 {
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 ($line-height-computed / 2);
|
||||
margin: 0 0 ($line-height-computed * .5);
|
||||
}
|
||||
|
||||
small {
|
||||
@@ -110,12 +110,22 @@ table {
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
form {
|
||||
p {
|
||||
margin-bottom: ($line-height-computed * .5);
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin-top: 0;
|
||||
margin-bottom: ($line-height-computed / 2);
|
||||
margin-bottom: ($line-height-computed * .5);
|
||||
padding-left: 1.5em;
|
||||
|
||||
ul,
|
||||
@@ -154,14 +164,14 @@ hr {
|
||||
border-top: 1px solid $hr-border;
|
||||
|
||||
li & {
|
||||
margin-top: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-top: $line-height-computed * .5;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 $line-height-computed;
|
||||
padding: floor($line-height-computed / 4) $padding-large-horizontal;
|
||||
padding: floor($line-height-computed * .25) $padding-large-horizontal;
|
||||
border-left: 4px solid $blockquote-border-color;
|
||||
|
||||
> :first-child {
|
||||
|
||||
@@ -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;
|
||||
@@ -67,7 +63,7 @@ form {
|
||||
//
|
||||
|
||||
form[action*="repository/diff"] {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
|
||||
@@ -144,11 +140,46 @@ p.buttons,
|
||||
}
|
||||
|
||||
|
||||
//== Submit + cancel
|
||||
//
|
||||
|
||||
#issue-form,
|
||||
.mypage-box,
|
||||
.journal,
|
||||
.edit_news,
|
||||
.edit_content,
|
||||
.edit_time_entry,
|
||||
.edit_membership {
|
||||
input[type="submit"] + a {
|
||||
margin-left: ceil($btn-padding-horizontal-small * .5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Apply + clear
|
||||
//
|
||||
|
||||
form {
|
||||
input,
|
||||
button,
|
||||
select {
|
||||
~ a {
|
||||
margin-left: ceil($btn-padding-horizontal-small * .5);
|
||||
line-height: $input-height-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Action buttons group
|
||||
//
|
||||
|
||||
p.buttons {
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
a {
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -187,6 +218,10 @@ p.buttons {
|
||||
min-width: 130px;
|
||||
}
|
||||
|
||||
label + & {
|
||||
margin-left: $padding-side;
|
||||
}
|
||||
|
||||
@at-root span#{&} {
|
||||
> span {
|
||||
display: inline-block;
|
||||
@@ -196,7 +231,8 @@ p.buttons {
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
line-height: initial;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,6 +274,10 @@ a[data-expands],
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
|
||||
|
||||
&.icon-only::before {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
a[data-expands] {
|
||||
@@ -253,3 +293,8 @@ a[data-expands] {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
a.icon-toggle-minus[data-expands],
|
||||
select[multiple="multiple"] + .toggle-multiselect {
|
||||
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// Calendar
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
table.cal {
|
||||
width: 100%;
|
||||
margin-bottom: $line-height-computed;
|
||||
@@ -45,6 +44,10 @@ table.cal {
|
||||
color: $gray-600;
|
||||
}
|
||||
|
||||
&.nwday {
|
||||
background: $table-bg-accent;
|
||||
}
|
||||
|
||||
&.today {
|
||||
background: $highlight-bg;
|
||||
|
||||
@@ -55,9 +58,91 @@ table.cal {
|
||||
}
|
||||
}
|
||||
|
||||
ul.cal {
|
||||
display: grid;
|
||||
grid-template-columns: 2rem repeat(7, 1fr);
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: 0;
|
||||
list-style: none;
|
||||
border: 1px solid $table-border-color;
|
||||
border-radius: 3px;
|
||||
|
||||
li {
|
||||
&.calhead {
|
||||
padding: 4px;
|
||||
background-color: $table-bg-active;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.week-number {
|
||||
padding: 4px;
|
||||
border: none;
|
||||
background-color: $table-bg-active;
|
||||
font-size: 1em;
|
||||
text-align: center;
|
||||
|
||||
span.label-week {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.calbody {
|
||||
min-height: calc(1.2em * 6);
|
||||
padding: 2px;
|
||||
border: 1px solid $table-border-color;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
font-size: 1em;
|
||||
line-height: 1.6;
|
||||
vertical-align: top;
|
||||
|
||||
p.day-num {
|
||||
font-size: 1.1em;
|
||||
text-align: right;
|
||||
|
||||
.abbr-day {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.day-letter {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.odd {
|
||||
p.day-num {
|
||||
color: $gray-600;
|
||||
}
|
||||
}
|
||||
|
||||
&.today {
|
||||
background: $highlight-bg;
|
||||
|
||||
p.day-num {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
&.nwday:not(.odd) {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table.cal .starting a,
|
||||
ul.cal .starting a,
|
||||
p.cal.legend .starting,
|
||||
table.cal .ending a,
|
||||
ul.cal .ending a,
|
||||
p.cal.legend .ending {
|
||||
@extend %fa-icon;
|
||||
|
||||
@@ -69,6 +154,7 @@ p.cal.legend .ending {
|
||||
}
|
||||
|
||||
table.cal .ending a,
|
||||
ul.cal .ending a,
|
||||
p.cal.legend .ending {
|
||||
&::before {
|
||||
content: $fa-var-caret-left;
|
||||
@@ -77,6 +163,7 @@ p.cal.legend .ending {
|
||||
}
|
||||
|
||||
table.cal .starting.ending a,
|
||||
ul.cal .starting.ending a,
|
||||
p.cal.legend .starting.ending {
|
||||
&::before {
|
||||
content: $fa-var-square;
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#content {
|
||||
padding: $padding-side;
|
||||
overflow-x: auto; // needed for drag & drop of enumerations
|
||||
|
||||
@if $css-grid-layout {
|
||||
grid-area: content;
|
||||
@@ -106,7 +107,7 @@
|
||||
|
||||
ul {
|
||||
&:nth-child(n) {
|
||||
margin: 0 0 ($line-height-computed / 2);
|
||||
margin: 0 0 ($line-height-computed * .5);
|
||||
padding: 0;
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
@@ -116,6 +117,7 @@
|
||||
|
||||
&:not(.watchers) {
|
||||
li {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
@@ -161,6 +163,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 * .5;
|
||||
line-height: $line-height-computed;
|
||||
|
||||
&::before {
|
||||
line-height: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.pages-hierarchy {
|
||||
.pages-hierarchy {
|
||||
margin-left: $sidebar-padding-horizontal + 3px;
|
||||
@@ -168,12 +191,14 @@
|
||||
|
||||
@if $sidebar-position == "right" {
|
||||
margin-left: 3px;
|
||||
} @else {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
> a:not(.icon-only) {
|
||||
padding-right: $sidebar-padding-horizontal / 2;
|
||||
padding-left: $sidebar-padding-horizontal / 2;
|
||||
padding-right: $sidebar-padding-horizontal * .5;
|
||||
padding-left: $sidebar-padding-horizontal * .5;
|
||||
|
||||
@if $sidebar-position == "right" {
|
||||
margin-left: 0;
|
||||
@@ -181,13 +206,9 @@
|
||||
}
|
||||
|
||||
.pages-hierarchy {
|
||||
margin-left: $sidebar-padding-horizontal / 2 + 3px;
|
||||
margin-left: $sidebar-padding-horizontal * .5 + 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,11 +224,115 @@
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// For plugin https://github.com/ledsun/redmine_wiki_page_tree
|
||||
div.page-tree {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.page-tree__title {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.page-tree__list {
|
||||
.page-tree__list {
|
||||
margin-left: $sidebar-padding-horizontal + 3px;
|
||||
border-left: 2px solid $gray-400;
|
||||
|
||||
@if $sidebar-position == "right" {
|
||||
margin-left: 3px;
|
||||
} @else {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.page-tree__list {
|
||||
margin-left: $sidebar-padding-horizontal * .5 + 3px;
|
||||
}
|
||||
|
||||
summary {
|
||||
padding-left: $sidebar-padding-horizontal + 8px;
|
||||
|
||||
@if $sidebar-position == "right" {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&::before {
|
||||
left: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
> a:not(.icon-only) {
|
||||
padding-right: $sidebar-padding-horizontal * .5;
|
||||
padding-left: $sidebar-padding-horizontal * .5;
|
||||
|
||||
@if $sidebar-position == "right" {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
details {
|
||||
summary {
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 0 $sidebar-padding-horizontal;
|
||||
padding-left: $sidebar-padding-horizontal * 1.5 + 8px;
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
border-radius: $border-radius-large 0 0 $border-radius-large;
|
||||
} @else {
|
||||
margin-left: -($sidebar-padding-horizontal);
|
||||
border-radius: 0 $border-radius-large $border-radius-large 0;
|
||||
}
|
||||
|
||||
&::-webkit-details-marker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: ($sidebar-padding-vertical + 1px) + ($line-height-computed - 16px) * .5;
|
||||
left: $sidebar-padding-horizontal * .5 + 6px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-image: inline-svg("chevron-right.svg", (path: (fill: $btn-default-icon-color)));
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $sidebar-link-hover-bg;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
padding-top: ($sidebar-padding-vertical + 1px);
|
||||
padding-bottom: ($sidebar-padding-vertical + 1px);
|
||||
|
||||
&:hover {
|
||||
color: $sidebar-link-hover-text;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&[open] > summary::before {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: 0 $padding-side $line-height-computed;
|
||||
padding-top: $line-height-computed;
|
||||
margin: 0 $padding-side;
|
||||
padding: $line-height-computed 0;
|
||||
border-top: 1px solid $gray-400;
|
||||
color: $gray-600;
|
||||
font-size: $font-size-small;
|
||||
@@ -219,24 +344,49 @@
|
||||
|
||||
@if $fixed-layout {
|
||||
@media screen and (min-width: $screen-sm-min) {
|
||||
body {
|
||||
background: $gray-100;
|
||||
}
|
||||
#top-menu,
|
||||
#header,
|
||||
#main-menu ul,
|
||||
#main {
|
||||
#main,
|
||||
#footer {
|
||||
width: $width-sm;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
#main {
|
||||
overflow: hidden;
|
||||
background: $body-bg;
|
||||
}
|
||||
#footer {
|
||||
background: $body-bg;
|
||||
|
||||
&::before {
|
||||
content: " ";
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
#top-menu,
|
||||
#header,
|
||||
#main-menu ul,
|
||||
#main {
|
||||
#main,
|
||||
#footer {
|
||||
width: $width-md;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
#top-menu,
|
||||
#header,
|
||||
#main-menu ul,
|
||||
#main {
|
||||
#main,
|
||||
#footer {
|
||||
width: $width-lg;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
a:not(.easy-mindmup__icon) {
|
||||
@extend %fa-icon;
|
||||
padding: 3px 10px 3px 20px;
|
||||
border-radius: $border-radius-small;
|
||||
|
||||
@@ -55,16 +55,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
> a,
|
||||
> span {
|
||||
> * {
|
||||
display: block;
|
||||
padding: $btn-padding-vertical $btn-padding-horizontal-small;
|
||||
margin: 1px;
|
||||
padding: ($btn-padding-vertical - 1px) ($btn-padding-horizontal-small - 1px);
|
||||
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;
|
||||
@@ -75,37 +76,7 @@
|
||||
}
|
||||
|
||||
.contextual {
|
||||
.drdn {
|
||||
&.expanded {
|
||||
> .drdn-trigger {
|
||||
border-color: $pagination-active-border;
|
||||
background-color: $pagination-active-bg;
|
||||
color: $pagination-active-color;
|
||||
}
|
||||
}
|
||||
|
||||
&-trigger {
|
||||
padding: $btn-padding-vertical $btn-padding-horizontal-small;
|
||||
border: 1px solid $pagination-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $pagination-bg;
|
||||
box-shadow: none;
|
||||
color: $pagination-color;
|
||||
text-align: center;
|
||||
|
||||
> .icon-only::before {
|
||||
margin: 0 1px;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: $pagination-hover-border;
|
||||
background-color: $pagination-hover-bg;
|
||||
color: $pagination-hover-color;
|
||||
}
|
||||
}
|
||||
|
||||
&-items {
|
||||
.drdn-items {
|
||||
padding: 3px;
|
||||
|
||||
a,
|
||||
@@ -116,13 +87,63 @@
|
||||
border-radius: $border-radius-small;
|
||||
color: $pagination-color;
|
||||
|
||||
&:hover {
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: $pagination-hover-border;
|
||||
background-color: $pagination-hover-bg;
|
||||
color: $pagination-hover-color;
|
||||
text-decoration: none;
|
||||
|
||||
&.icon-del {
|
||||
color: map-get(map-get($icon-color-map, danger), normal);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.journal-actions) > .drdn {
|
||||
&.expanded {
|
||||
> .drdn-trigger {
|
||||
border-color: $pagination-active-border;
|
||||
background-color: $pagination-active-bg;
|
||||
color: $pagination-active-color;
|
||||
}
|
||||
}
|
||||
|
||||
.drdn-trigger {
|
||||
padding: $btn-padding-vertical $btn-padding-horizontal-small;
|
||||
border: 1px solid $pagination-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $pagination-bg;
|
||||
box-shadow: none;
|
||||
color: $pagination-color;
|
||||
text-align: center;
|
||||
|
||||
> .icon-only {
|
||||
margin: 0 -4px;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: $pagination-hover-border;
|
||||
background-color: $pagination-hover-bg;
|
||||
color: $pagination-hover-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.journal-actions {
|
||||
.drdn-trigger {
|
||||
color: map-get(map-get($icon-color-map, default), normal);
|
||||
}
|
||||
|
||||
.drdn-trigger:hover,
|
||||
.drdn.expanded .drdn-trigger {
|
||||
color: map-get(map-get($icon-color-map, default), hover);
|
||||
}
|
||||
|
||||
.drdn-content {
|
||||
top: $input-height-base;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,27 +7,29 @@
|
||||
//
|
||||
|
||||
a.collapsible,
|
||||
a.collapsible.icon,
|
||||
.collapsible > legend {
|
||||
color: $link-color;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
|
||||
&:hover {
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $link-hover-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
@include fa-icon;
|
||||
content: $fa-var-chevron-down;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
top: -.1em;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin-right: 3px;
|
||||
transform: rotate(0);
|
||||
border-top: 6px solid;
|
||||
border-right: 4px solid transparent;
|
||||
border-left: 4px solid transparent;
|
||||
color: $gray-600;
|
||||
font-size: 12px;
|
||||
vertical-align: middle;
|
||||
|
||||
@if $collapsible-animation-time > 0 {
|
||||
@@ -37,6 +39,7 @@ a.collapsible,
|
||||
}
|
||||
|
||||
a.collapsible.collapsed,
|
||||
a.collapsible.icon-collapsed,
|
||||
.collapsible.collapsed > legend {
|
||||
&::before {
|
||||
transform: rotate(-90deg);
|
||||
@@ -98,19 +101,42 @@ a.collapsible.collapsed,
|
||||
//
|
||||
|
||||
.hidden-for-sighted {
|
||||
position: absolute;
|
||||
top: auto;
|
||||
left: -10000px;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
// stylelint-disable declaration-no-important
|
||||
position: absolute !important;
|
||||
top: auto !important;
|
||||
left: -10000px !important;
|
||||
width: 1px !important;
|
||||
height: 1px !important;
|
||||
overflow: hidden !important;
|
||||
// stylelint-enable declaration-no-important
|
||||
}
|
||||
|
||||
img {
|
||||
image-orientation: from-image;
|
||||
}
|
||||
|
||||
.filecontent-container {
|
||||
position: relative;
|
||||
min-height: 200px;
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
> .filecontent {
|
||||
position: absolute;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
|
||||
&.wiki {
|
||||
position: static;
|
||||
padding-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//== Responsive autoscroll
|
||||
//
|
||||
|
||||
.autoscroll {
|
||||
position: relative;
|
||||
margin-bottom: $line-height-computed;
|
||||
overflow-x: auto;
|
||||
}
|
||||
@@ -164,12 +190,12 @@ a.collapsible.collapsed,
|
||||
}
|
||||
|
||||
.splitcontentleft {
|
||||
padding-right: ($padding-side / 2);
|
||||
padding-right: ($padding-side * .5);
|
||||
float: left;
|
||||
}
|
||||
|
||||
.splitcontentright {
|
||||
padding-left: ($padding-side / 2);
|
||||
padding-left: ($padding-side * .5);
|
||||
float: right;
|
||||
}
|
||||
|
||||
@@ -232,6 +258,10 @@ a.collapsible.collapsed,
|
||||
@include check;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.gravatar {
|
||||
margin-right: $padding-small-vertical;
|
||||
}
|
||||
}
|
||||
|
||||
.roles-selection {
|
||||
@@ -245,7 +275,7 @@ a.collapsible.collapsed,
|
||||
//
|
||||
|
||||
p.subtitle {
|
||||
margin-top: ($line-height-computed / -2);
|
||||
margin-top: ($line-height-computed * -.5);
|
||||
margin-bottom: $line-height-computed;
|
||||
font-style: italic;
|
||||
}
|
||||
@@ -259,12 +289,15 @@ p.subtitle {
|
||||
}
|
||||
|
||||
.block-receiver {
|
||||
box-sizing: border-box;
|
||||
flex-basis: 100%;
|
||||
|
||||
.dragging & {
|
||||
min-height: 20px;
|
||||
margin: $padding-side / -2;
|
||||
margin-bottom: $line-height-computed;
|
||||
padding: $padding-side / 2;
|
||||
outline: 2px dashed $gray-600;
|
||||
}
|
||||
}
|
||||
|
||||
.mypage-box {
|
||||
margin-bottom: $line-height-computed;
|
||||
@@ -315,21 +348,8 @@ 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;
|
||||
}
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.mypage-box {
|
||||
> .contextual {
|
||||
@@ -343,15 +363,11 @@ a.close-icon {
|
||||
}
|
||||
|
||||
#list-left {
|
||||
width: 50%;
|
||||
padding-right: ($padding-side / 2);
|
||||
float: left;
|
||||
flex-basis: 50%;
|
||||
}
|
||||
|
||||
#list-right {
|
||||
width: 50%;
|
||||
padding-left: ($padding-side / 2);
|
||||
float: right;
|
||||
flex-basis: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,6 +461,10 @@ ul.projects {
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.archived {
|
||||
color: $gray-600;
|
||||
}
|
||||
}
|
||||
|
||||
#projects-index ul.projects {
|
||||
@@ -452,16 +472,16 @@ ul.projects {
|
||||
&.root {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -($padding-side / 2);
|
||||
margin-left: -($padding-side / 2);
|
||||
margin-right: -($padding-side * .5);
|
||||
margin-left: -($padding-side * .5);
|
||||
|
||||
> li {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
flex: 0 1 auto;
|
||||
width: 100%;
|
||||
margin-right: $padding-side / 2;
|
||||
margin-left: $padding-side / 2;
|
||||
margin-right: $padding-side * .5;
|
||||
margin-left: $padding-side * .5;
|
||||
padding: $panel-body-padding;
|
||||
border: 1px solid $panel-border;
|
||||
border-radius: $border-radius-base;
|
||||
@@ -484,7 +504,7 @@ ul.projects {
|
||||
}
|
||||
|
||||
li.child {
|
||||
margin-top: $line-height-computed / 2;
|
||||
margin-top: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
a.project {
|
||||
@@ -497,6 +517,14 @@ ul.projects {
|
||||
}
|
||||
}
|
||||
|
||||
table.projects {
|
||||
.name {
|
||||
a + span.icon {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#custom_field_tracker_ids {
|
||||
label {
|
||||
margin-right: 10px;
|
||||
@@ -563,23 +591,42 @@ ul.projects {
|
||||
//
|
||||
|
||||
div#roadmap {
|
||||
article {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
|
||||
.related-issues {
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
td.checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
td.assigned_to {
|
||||
width: 1px;
|
||||
padding-right: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
table.progress {
|
||||
td {
|
||||
height: $progress-height;
|
||||
}
|
||||
|
||||
+ .percent {
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
header {
|
||||
display: block;
|
||||
|
||||
> h3 {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
header > h3,
|
||||
h3.version {
|
||||
margin-bottom: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.wiki {
|
||||
@@ -628,16 +675,22 @@ div#version-summary {
|
||||
//== Ajax indicator
|
||||
//
|
||||
|
||||
@keyframes spin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
#ajax-indicator {
|
||||
@include nice-shadow(3);
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
box-sizing: border-box;
|
||||
width: 200px;
|
||||
margin: (($line-height-computed + $padding-large-vertical * 2 + 1px * 2) / -2) ((200px + $padding-large-horizontal * 2 + 1px * 2) / -2);
|
||||
margin: (($padding-large-vertical * 2 + 1px * 2 + $line-height-computed) * -.5) (200px * -.5);
|
||||
padding: $padding-large-vertical $padding-large-horizontal;
|
||||
border: 1px solid $highlight-border;
|
||||
border-radius: $border-radius-base;
|
||||
opacity: .9;
|
||||
background-color: $highlight-bg;
|
||||
color: $highlight-text;
|
||||
@@ -645,13 +698,23 @@ div#version-summary {
|
||||
text-align: center;
|
||||
|
||||
span {
|
||||
padding-left: 26px;
|
||||
background-image: url("../../../images/loading.gif");
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0% 40%;
|
||||
line-height: $line-height-computed;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
width: $line-height-computed;
|
||||
height: $line-height-computed;
|
||||
margin-right: $line-height-computed * .5;
|
||||
animation: spin 1s linear infinite;
|
||||
border: 3px solid rgba($highlight-text, .3);
|
||||
border-radius: 50%;
|
||||
border-top-color: $highlight-text;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Boards (forum)
|
||||
@@ -709,19 +772,18 @@ div.table-list.boards {
|
||||
|
||||
.controller-messages.action-show {
|
||||
h2 {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
.message {
|
||||
border: 1px solid $gray-400;
|
||||
border: 1px solid $bubble-border;
|
||||
border-radius: $panel-border-radius;
|
||||
background: $gray-100;
|
||||
background: $bubble-bg;
|
||||
|
||||
> h4,
|
||||
> p {
|
||||
margin-bottom: 0;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal;
|
||||
border-bottom: 1px solid mix($gray-400, $gray-100, 50%);
|
||||
color: $gray-700;
|
||||
font-size: $font-size-list;
|
||||
|
||||
@@ -735,7 +797,8 @@ div.table-list.boards {
|
||||
}
|
||||
|
||||
.wiki {
|
||||
padding: $bubble-padding-horizontal;
|
||||
padding: $panel-body-padding;
|
||||
border-top: 1px solid $bubble-border;
|
||||
border-radius: 0 0 $panel-border-radius $panel-border-radius;
|
||||
background: $body-bg;
|
||||
}
|
||||
@@ -743,13 +806,17 @@ div.table-list.boards {
|
||||
.contextual {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-top: $padding-small-vertical;
|
||||
margin-right: $bubble-padding-vertical;
|
||||
padding: ($bubble-padding-vertical - 1px) $bubble-padding-vertical 0 0;
|
||||
|
||||
a {
|
||||
margin-left: ceil($bubble-padding-vertical / 2);
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.attachments {
|
||||
padding: $bubble-padding-horizontal;
|
||||
border-top-color: $bubble-border;
|
||||
}
|
||||
}
|
||||
|
||||
.reply {
|
||||
@@ -782,12 +849,12 @@ div.table-list.boards {
|
||||
margin-top: 1px;
|
||||
margin-left: 2px;
|
||||
border-width: 6px;
|
||||
border-right-color: $panel-bg;
|
||||
border-right-color: $bubble-bg;
|
||||
}
|
||||
|
||||
&::before {
|
||||
border-width: 7px;
|
||||
border-right-color: $panel-border;
|
||||
border-right-color: $bubble-border;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -805,20 +872,67 @@ div.table-list.boards {
|
||||
}
|
||||
|
||||
|
||||
//== Documents
|
||||
//
|
||||
|
||||
.controller-documents {
|
||||
&.action-index {
|
||||
h2 {
|
||||
font-size: $font-size-h2;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-bottom: 0;
|
||||
font-size: $font-size-h4;
|
||||
}
|
||||
|
||||
.wiki {
|
||||
+ h3,
|
||||
+ h4 {
|
||||
margin-top: $line-height-computed;
|
||||
padding-top: $line-height-computed;
|
||||
border-top: 1px solid $panel-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.action-show {
|
||||
.wiki {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: $font-size-h3;
|
||||
}
|
||||
|
||||
#content > h2,
|
||||
#content > h4 {
|
||||
+ p {
|
||||
color: $gray-700;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== News
|
||||
//
|
||||
|
||||
.news.box {
|
||||
p > a:not(:last-child) {
|
||||
display: inline-block;
|
||||
margin-bottom: floor($line-height-computed / 4);
|
||||
margin-bottom: floor($line-height-computed * .25);
|
||||
font-size: $font-size-h4;
|
||||
}
|
||||
|
||||
.summary,
|
||||
.author {
|
||||
display: block;
|
||||
margin-bottom: floor($line-height-computed / 4);
|
||||
margin-bottom: floor($line-height-computed * .25);
|
||||
|
||||
+ br {
|
||||
display: none;
|
||||
@@ -833,7 +947,7 @@ div.table-list.boards {
|
||||
#edit-news + p {
|
||||
em {
|
||||
display: block;
|
||||
margin-bottom: floor($line-height-computed / 4);
|
||||
margin-bottom: floor($line-height-computed * .25);
|
||||
|
||||
+ br {
|
||||
display: none;
|
||||
@@ -843,7 +957,7 @@ div.table-list.boards {
|
||||
|
||||
.news.box .summary,
|
||||
#edit-news + p em {
|
||||
padding: floor($line-height-computed / 4) $padding-base-horizontal;
|
||||
padding: floor($line-height-computed * .25) $padding-base-horizontal;
|
||||
border-left: 4px solid $blockquote-border-color;
|
||||
}
|
||||
|
||||
@@ -854,7 +968,7 @@ div.table-list.boards {
|
||||
|
||||
header {
|
||||
h3 {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
|
||||
> a {
|
||||
font-weight: $font-weight-bold;
|
||||
@@ -866,6 +980,10 @@ div.table-list.boards {
|
||||
.author {
|
||||
color: $gray-700;
|
||||
|
||||
.flyout-menu & {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.user {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
@@ -878,7 +996,7 @@ div.table-list.boards {
|
||||
#comments {
|
||||
> h4 {
|
||||
margin-top: $line-height-computed;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -902,6 +1020,7 @@ div.table-list.boards {
|
||||
background: $body-bg;
|
||||
color: $panel-color;
|
||||
font-family: $font-family-monospace;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.diff_out {
|
||||
@@ -920,6 +1039,16 @@ div.table-list.boards {
|
||||
}
|
||||
}
|
||||
|
||||
.text-diff {
|
||||
.diff_out {
|
||||
background: $diff-out-bg;
|
||||
}
|
||||
|
||||
.diff_in {
|
||||
background: $diff-in-bg;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//== Repository view
|
||||
//
|
||||
|
||||
@@ -7,6 +7,15 @@ form {
|
||||
padding: $table-condensed-cell-padding;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
> button,
|
||||
> input,
|
||||
> select {
|
||||
margin-right: 5px;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
line-height: $input-height-base;
|
||||
vertical-align: top;
|
||||
@@ -17,6 +26,8 @@ form {
|
||||
}
|
||||
}
|
||||
|
||||
span.field label,
|
||||
span.field ~ label,
|
||||
.box label {
|
||||
line-height: $line-height-base;
|
||||
|
||||
@@ -26,6 +37,11 @@ form {
|
||||
}
|
||||
}
|
||||
|
||||
.add-filter label,
|
||||
.filter label {
|
||||
line-height: $input-height-base;
|
||||
}
|
||||
|
||||
.contextual > & {
|
||||
display: inline-block;
|
||||
line-height: $input-height-base;
|
||||
@@ -107,7 +123,7 @@ input[type="search"] {
|
||||
|
||||
input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
margin: 4px 1px 0 0;
|
||||
margin: 4px 3px 0 5px;
|
||||
margin-top: 1px \9; // IE8-9
|
||||
line-height: normal;
|
||||
vertical-align: top;
|
||||
@@ -212,7 +228,7 @@ select:-moz-focusring {
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
padding: ($line-height-computed / 2) 0;
|
||||
padding: ($line-height-computed * .5) 0;
|
||||
border: 0 none;
|
||||
border-top: 1px solid $legend-border-color;
|
||||
|
||||
@@ -250,6 +266,7 @@ em.info {
|
||||
color: $gray-700;
|
||||
font-size: $font-size-small;
|
||||
font-style: normal;
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
|
||||
|
||||
@@ -280,7 +297,7 @@ em.info {
|
||||
|
||||
p {
|
||||
@extend %clearfix;
|
||||
margin: 0 0 ($line-height-computed / 2);
|
||||
margin: 0 0 ($line-height-computed * .5);
|
||||
padding-left: $label-width + $label-space;
|
||||
clear: left;
|
||||
line-height: $input-height-base;
|
||||
@@ -293,6 +310,11 @@ em.info {
|
||||
display: block;
|
||||
padding-top: $input-padding-vertical + 1px;
|
||||
line-height: $line-height-base;
|
||||
|
||||
> input[type="checkbox"],
|
||||
> input[type="radio"] {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,6 +358,12 @@ em.info {
|
||||
float: none;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
|
||||
> input[type="checkbox"],
|
||||
> input[type="radio"] {
|
||||
margin-left: -$check-input-gutter;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
&.inline {
|
||||
@@ -349,11 +377,13 @@ em.info {
|
||||
> input[type="checkbox"],
|
||||
> input[type="radio"] {
|
||||
margin-top: $check-input-margin-vertical;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
~ input[type="checkbox"],
|
||||
~ input[type="radio"] {
|
||||
margin-top: $check-input-margin-btn-v;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,14 +397,25 @@ label.inline {
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
label.inline,
|
||||
label.block {
|
||||
> input {
|
||||
margin-left: -$check-input-gutter;
|
||||
float: left;
|
||||
}
|
||||
|
||||
input + & {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
label.block {
|
||||
display: block;
|
||||
width: auto;
|
||||
|
||||
> input {
|
||||
margin-right: 3px;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -383,7 +424,6 @@ label.block {
|
||||
|
||||
label[for="issue_description"] + a {
|
||||
display: inline-block;
|
||||
margin-top: $input-padding-vertical + 1px;
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
@@ -395,7 +435,7 @@ label[for="issue_description"] + a {
|
||||
//
|
||||
|
||||
label[for="closed"] {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
|
||||
@@ -441,7 +481,7 @@ label[for="closed"] {
|
||||
//
|
||||
|
||||
.jstEditor {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
//== User form
|
||||
@@ -465,13 +505,13 @@ label[for="closed"] {
|
||||
.attachments_fields {
|
||||
> span {
|
||||
display: block;
|
||||
margin-bottom: $line-height-computed / 4;
|
||||
margin-bottom: $line-height-computed * .25;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 21.5em;
|
||||
margin-right: .5em;
|
||||
margin-bottom: $line-height-computed / 4;
|
||||
margin-bottom: $line-height-computed * .25;
|
||||
|
||||
&.filename {
|
||||
padding-left: $input-padding-horizontal + 16px;
|
||||
@@ -581,12 +621,16 @@ label[for="closed"] {
|
||||
#watchers_inputs {
|
||||
display: block;
|
||||
max-height: $check-list-max-height;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
overflow: auto;
|
||||
|
||||
label {
|
||||
@include check-list;
|
||||
}
|
||||
|
||||
.gravatar {
|
||||
margin-right: $padding-small-vertical;
|
||||
}
|
||||
}
|
||||
|
||||
#watchers_inputs {
|
||||
@@ -702,12 +746,21 @@ fieldset#filters {
|
||||
select,
|
||||
label,
|
||||
.icon,
|
||||
.icon-only {
|
||||
.icon-only,
|
||||
> span > a {
|
||||
line-height: inherit;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.query_sort_criteria_count {
|
||||
display: inline-block;
|
||||
min-width: 1em;
|
||||
margin-bottom: $line-height-computed * .25;
|
||||
line-height: $input-height-base;
|
||||
}
|
||||
|
||||
|
||||
//== Reset label style for trackers selector in custom field editor
|
||||
//
|
||||
|
||||
@@ -2,25 +2,118 @@
|
||||
// Gantt chart
|
||||
// --------------------------------------------------
|
||||
|
||||
div.gantt_content {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.controller-gantts form + table,
|
||||
table.gantt-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
|
||||
td {
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
|
||||
.gantt_hdr {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
border: 1px solid $gray-400;
|
||||
border-left-width: 0;
|
||||
border: 1px solid $gray-500;
|
||||
text-align: center;
|
||||
|
||||
&[style*="background"] {
|
||||
background: $gray-200 !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
|
||||
&.nwday {
|
||||
background-color: $gray-100;
|
||||
background-color: $gray-200;
|
||||
color: $gray-950;
|
||||
}
|
||||
|
||||
#gantt_area & {
|
||||
border-right-width: 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
.gantt_subjects_container:not(.draw_selected_columns) &,
|
||||
.last_gantt_selected_column & {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.gantt_subjects_container .gantt_subjects {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.last_gantt_selected_column .gantt_selected_column_container,
|
||||
.gantt_subjects_container .gantt_subjects * {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.gantt_subjects_column {
|
||||
.gantt_hdr {
|
||||
border-left: 1px solid $gray-500 !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
|
||||
+ td {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.gantt_subjects {
|
||||
font-size: $font-size-small;
|
||||
.issue-subject {
|
||||
&:hover {
|
||||
background-color: $table-bg-hover;
|
||||
}
|
||||
|
||||
img.icon-gravatar {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.gantt_hdr_selected_column_name {
|
||||
@include text-overflow;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
transform: translateY(-50%);
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
|
||||
td.gantt_selected_column {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
td.gantt_selected_column .gantt_hdr,
|
||||
.gantt_selected_column_container {
|
||||
width: 60px - 1px;
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
.gantt_subjects {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
|
||||
.gantt_selected_column_content {
|
||||
div {
|
||||
box-sizing: border-box;
|
||||
padding-right: $table-condensed-cell-padding;
|
||||
padding-left: $table-condensed-cell-padding;
|
||||
}
|
||||
}
|
||||
|
||||
.gantt_subjects,
|
||||
.gantt_selected_column_content {
|
||||
div {
|
||||
@include text-overflow;
|
||||
width: 100%;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
}
|
||||
@@ -118,12 +211,20 @@
|
||||
.version-behind-schedule,
|
||||
.issue-behind-schedule {
|
||||
color: $brand-warning;
|
||||
|
||||
.context-menu-selection & {
|
||||
color: $brand-text;
|
||||
}
|
||||
}
|
||||
|
||||
.version-overdue,
|
||||
.issue-overdue,
|
||||
.project-overdue {
|
||||
color: $brand-danger;
|
||||
|
||||
.context-menu-selection & {
|
||||
color: $brand-text;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -150,6 +251,7 @@
|
||||
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,124 @@
|
||||
}
|
||||
}
|
||||
|
||||
$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,
|
||||
/* typo "expended" has to be kept for backwards compatibility */
|
||||
icon-expended: $fa-var-chevron-down,
|
||||
icon-expanded: $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,
|
||||
icon-bookmarked-project: $fa-var-tag,
|
||||
icon-copy-link: $fa-var-clipboard,
|
||||
|
||||
// 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,124 +153,74 @@ 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; }
|
||||
// A empty icon should behave more like icon-only
|
||||
a.icon:empty {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
span.icon + span.icon {
|
||||
margin-left: $padding-small-vertical;
|
||||
}
|
||||
|
||||
$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;
|
||||
} @else if $class == "icon-bookmarked-project" {
|
||||
color: $blue;
|
||||
}
|
||||
}
|
||||
|
||||
@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
|
||||
//
|
||||
@@ -195,7 +263,7 @@ a.icon-del {
|
||||
.icon-folder,
|
||||
.icon-file {
|
||||
&::before {
|
||||
width: 16px;
|
||||
width: $icon-width;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@@ -240,6 +308,25 @@ a.icon-del {
|
||||
}
|
||||
}
|
||||
|
||||
.icon-expended,
|
||||
.icon-collapsed {
|
||||
&::before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.icon {
|
||||
padding-left: $icon-width;
|
||||
}
|
||||
|
||||
&.expander {
|
||||
background-image: none;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-zoom-in + .icon-zoom-out {
|
||||
margin-left: $padding-small-vertical;
|
||||
}
|
||||
|
||||
|
||||
//== Administration menu sections
|
||||
//
|
||||
@@ -259,19 +346,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;
|
||||
@@ -372,8 +459,6 @@ a.icon-del {
|
||||
|
||||
&::before {
|
||||
content: $fa-var-arrows-v;
|
||||
width: 16px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&.ajax-loading {
|
||||
@@ -400,8 +485,9 @@ 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;
|
||||
}
|
||||
@@ -410,7 +496,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; }
|
||||
|
||||
@@ -510,18 +596,58 @@ dt {
|
||||
}
|
||||
}
|
||||
|
||||
.my-project {
|
||||
a.project {
|
||||
$svg-star: inline-svg("icon-star.svg", (path: (fill: $orange)));
|
||||
$svg-tag: inline-svg("icon-tag.svg", (path: (fill: $blue)));
|
||||
|
||||
&.icon {
|
||||
padding-left: 0;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: none;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.my-project,
|
||||
&.icon-user,
|
||||
&.icon-bookmarked-project {
|
||||
padding-right: $icon-width;
|
||||
background-image: $svg-star;
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom .2em right 0, bottom .2em right $icon-width;
|
||||
}
|
||||
|
||||
&.icon-bookmarked-project {
|
||||
background-image: $svg-tag;
|
||||
}
|
||||
|
||||
&.icon-user.icon-bookmarked-project {
|
||||
padding-right: $icon-width * 2;
|
||||
background-image: $svg-tag, $svg-star;
|
||||
}
|
||||
}
|
||||
|
||||
span.my-project {
|
||||
@extend %fa-icon;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-star;
|
||||
color: $yellow;
|
||||
font-size: $font-size-small;
|
||||
width: $icon-width;
|
||||
margin-right: 0;
|
||||
color: $orange;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.sort {
|
||||
@extend %fa-icon-after;
|
||||
padding-left: 0;
|
||||
|
||||
&::before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
&::after {
|
||||
margin-left: .2em;
|
||||
@@ -580,7 +706,8 @@ em.info.error {
|
||||
}
|
||||
}
|
||||
|
||||
.message .contextual {
|
||||
.message {
|
||||
.contextual {
|
||||
a {
|
||||
@extend %fa-icon;
|
||||
opacity: .7;
|
||||
@@ -590,6 +717,14 @@ em.info.error {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .contextual {
|
||||
a {
|
||||
&:nth-child(1) {
|
||||
&::before {
|
||||
content: $fa-var-comment;
|
||||
@@ -607,9 +742,6 @@ em.info.error {
|
||||
content: $fa-var-trash;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -807,6 +939,12 @@ div.wiki {
|
||||
> a {
|
||||
@extend %fa-icon;
|
||||
|
||||
&::before {
|
||||
width: $icon-width;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:not([class*="icon"]) {
|
||||
&::before {
|
||||
content: $fa-var-comment;
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
width: $issue-gravatar-size;
|
||||
height: $issue-gravatar-size;
|
||||
margin-right: 10px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
float: left;
|
||||
|
||||
&:nth-child(2) {
|
||||
@@ -47,7 +47,7 @@
|
||||
width: $issue-gravatar-size;
|
||||
height: $issue-gravatar-size;
|
||||
margin-right: 10px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
float: left;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,8 @@
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
|
||||
> hr {
|
||||
> hr,
|
||||
.attribute > hr {
|
||||
@if $clean-issues {
|
||||
margin: $issue-padding 0;
|
||||
} @else {
|
||||
@@ -126,7 +127,42 @@
|
||||
}
|
||||
}
|
||||
|
||||
.attributes {
|
||||
@if $color-status {
|
||||
.attributes td.status,
|
||||
.attributes .attribute.status .value {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 1em;
|
||||
margin-top: $issue-attribute-padding-v;
|
||||
padding: 1px $table-cell-padding;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $status-default-bg;
|
||||
color: $status-default-color;
|
||||
font-size: $font-size-small;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
@each $status, $status-colors in $status-colors-map {
|
||||
&.#{$status} {
|
||||
.attributes td.status,
|
||||
.attributes .attribute.status .value {
|
||||
background-color: map-get($status-colors, background);
|
||||
color: map-get($status-colors, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $priority-icon {
|
||||
.attributes td.priority,
|
||||
.attribute.priority .value {
|
||||
@include priority-icon-base;
|
||||
}
|
||||
}
|
||||
|
||||
table.attributes {
|
||||
width: 100%;
|
||||
|
||||
th,
|
||||
@@ -149,67 +185,66 @@
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
> tbody > tr {
|
||||
> th,
|
||||
> th {
|
||||
width: $label-width;
|
||||
}
|
||||
|
||||
> td {
|
||||
width: 25%;
|
||||
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) {
|
||||
width: auto;
|
||||
grid-template-columns: repeat(2, minmax(auto, max-content));
|
||||
|
||||
> tbody > tr {
|
||||
> th {
|
||||
width: 14em;
|
||||
}
|
||||
|
||||
> td {
|
||||
width: auto;
|
||||
min-width: 16em;
|
||||
}
|
||||
}
|
||||
.attribute .value {
|
||||
min-width: $label-width;
|
||||
}
|
||||
}
|
||||
|
||||
@if $color-status {
|
||||
.attributes td.status,
|
||||
.attribute.status .value {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 1em;
|
||||
margin-top: $issue-attribute-padding-v;
|
||||
padding: 1px $table-cell-padding;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $status-default-bg;
|
||||
color: $status-default-color;
|
||||
font-size: $font-size-small;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.splitcontent {
|
||||
display: contents;
|
||||
|
||||
@each $status, $status-colors in $status-colors-map {
|
||||
&.#{$status} {
|
||||
.attributes td.status,
|
||||
.attribute.status .value {
|
||||
background-color: map-get($status-colors, background);
|
||||
color: map-get($status-colors, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $priority-icon {
|
||||
.attributes td.priority,
|
||||
.attribute.priority .value {
|
||||
@include priority-icon-base;
|
||||
&::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
.splitcontentleft {
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: auto;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
float: none;
|
||||
}
|
||||
} @else {
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
.splitcontentleft {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.attribute .value {
|
||||
min-width: $label-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.splitcontent {
|
||||
.attribute {
|
||||
padding-left: $label-width;
|
||||
|
||||
.label {
|
||||
width: $label-width;
|
||||
margin-left: -$label-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,21 +257,20 @@
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 25%;
|
||||
box-sizing: border-box;
|
||||
float: left;
|
||||
color: $gray-700;
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: 14em;
|
||||
}
|
||||
}
|
||||
|
||||
.value {
|
||||
color: $gray-950;
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: auto;
|
||||
min-width: 14em + 16em;
|
||||
&:empty::after {
|
||||
content: "-";
|
||||
}
|
||||
|
||||
*:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -256,13 +290,19 @@
|
||||
padding: $issue-padding;
|
||||
border-top: 1px solid $issue-border;
|
||||
}
|
||||
|
||||
// Restore margin below buttons in reverse chronological mode
|
||||
+ div[style] + .contextual {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
|
||||
div.fileover {
|
||||
div.fileover,
|
||||
p.custom-field-filedroplistner.fileover {
|
||||
background-color: $highlight-bg;
|
||||
}
|
||||
|
||||
div.attachments {
|
||||
div.attachments:not(.box) {
|
||||
padding: $line-height-computed 0;
|
||||
border-top: 1px solid $issue-border;
|
||||
|
||||
@@ -323,6 +363,7 @@ div.thumbnails {
|
||||
top: 0;
|
||||
margin: 3px;
|
||||
border-radius: $border-radius-base - 1;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,7 +374,7 @@ div.thumbnails {
|
||||
}
|
||||
|
||||
.issues {
|
||||
margin: ($line-height-computed / 2) 0 0;
|
||||
margin: ($line-height-computed * .5) 0 0;
|
||||
|
||||
tr {
|
||||
background-color: transparent;
|
||||
@@ -343,6 +384,10 @@ div.thumbnails {
|
||||
border-bottom: 0 none;
|
||||
}
|
||||
|
||||
td.subject {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
td.checkbox {
|
||||
display: none;
|
||||
}
|
||||
@@ -354,9 +399,26 @@ div.thumbnails {
|
||||
td.buttons {
|
||||
width: 3em;
|
||||
vertical-align: middle;
|
||||
|
||||
a:not(:first-child) {
|
||||
margin-left: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#trackers_description {
|
||||
display: none;
|
||||
|
||||
dt {
|
||||
margin: 0 0 ($line-height-computed * .25);
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#new-relation-form {
|
||||
text-align: right;
|
||||
@@ -370,9 +432,13 @@ div.thumbnails {
|
||||
}
|
||||
}
|
||||
|
||||
#history {
|
||||
overflow: auto;
|
||||
#update > form {
|
||||
margin-bottom: $line-height-computed;
|
||||
padding-bottom: $line-height-computed;
|
||||
border-bottom: 1px solid $issue-border;
|
||||
}
|
||||
|
||||
#history {
|
||||
> .tabs {
|
||||
margin-bottom: $line-height-computed + 2px * 2;
|
||||
}
|
||||
@@ -404,79 +470,97 @@ div.thumbnails {
|
||||
|
||||
.journal {
|
||||
position: relative;
|
||||
margin-bottom: $line-height-computed + 2px * 2;
|
||||
margin-bottom: $line-height-computed;
|
||||
border: 1px solid $bubble-border;
|
||||
border-radius: $panel-border-radius;
|
||||
|
||||
@if $use-gravatars {
|
||||
margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
|
||||
}
|
||||
|
||||
&.changeset {
|
||||
h4 + p {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: $bubble-padding-vertical;
|
||||
background-color: $bubble-bg;
|
||||
font-size: $font-size-list;
|
||||
|
||||
> a:first-child {
|
||||
font-family: $font-family-monospace;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> div {
|
||||
&:target {
|
||||
$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;
|
||||
z-index: -1;
|
||||
top: -($line-height-computed + 2px);
|
||||
left: 22px;
|
||||
width: 4px;
|
||||
height: $line-height-computed;
|
||||
background-color: darken($body-bg, 5%);
|
||||
top: ($responsive-header-height + 4px);
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
border-radius: $panel-border-radius - 1px;
|
||||
box-shadow: 0 0 0 1px $border, 0 0 0 4px $shadow;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.tabs + &::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> div {
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $panel-border-radius;
|
||||
|
||||
&:target {
|
||||
border-color: darken($issue-border, 25%);
|
||||
|
||||
@if $use-gravatars {
|
||||
h4::before {
|
||||
border-right-color: darken($issue-border, 25%);
|
||||
> h4::before {
|
||||
border-right-color: $border;
|
||||
filter: drop-shadow(-4px 0 0 $shadow);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $redmine-responsive-min) {
|
||||
margin-top: -$line-height-computed;
|
||||
padding-top: $line-height-computed;
|
||||
|
||||
&::before {
|
||||
top: $line-height-computed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// For Redmine 4.0+
|
||||
> div > .contextual {
|
||||
> div > .contextual,
|
||||
> .contextual {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin: 0;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal;
|
||||
font-size: $font-size-list;
|
||||
|
||||
> .journal-actions {
|
||||
padding-right: $issue-attribute-padding-h;
|
||||
|
||||
> a {
|
||||
opacity: $icon-opacity;
|
||||
|
||||
&:hover {
|
||||
opacity: $icon-hover-opacity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> a.journal-link {
|
||||
padding-left: $issue-attribute-padding-h;
|
||||
opacity: 1;
|
||||
color: $gray-700;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> div > h4 {
|
||||
> div > h4,
|
||||
> h4 {
|
||||
margin: 0;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal;
|
||||
border-radius: $panel-border-radius $panel-border-radius 0 0;
|
||||
background-color: $issue-bg;
|
||||
background-color: $bubble-bg;
|
||||
color: $gray-700;
|
||||
font-size: $font-size-list;
|
||||
font-weight: $font-weight-normal;
|
||||
|
||||
a {
|
||||
color: $gray-900;
|
||||
@@ -492,7 +576,8 @@ div.thumbnails {
|
||||
}
|
||||
|
||||
@if $use-gravatars {
|
||||
> div > h4 {
|
||||
> div > h4,
|
||||
> h4 {
|
||||
position: relative;
|
||||
|
||||
&::before,
|
||||
@@ -514,12 +599,12 @@ div.thumbnails {
|
||||
margin-top: 1px;
|
||||
margin-left: 2px;
|
||||
border-width: 6px;
|
||||
border-right-color: $issue-bg;
|
||||
border-right-color: $bubble-bg;
|
||||
}
|
||||
|
||||
&::before {
|
||||
border-width: 7px;
|
||||
border-right-color: $issue-border;
|
||||
border-right-color: $bubble-border;
|
||||
}
|
||||
|
||||
> .gravatar {
|
||||
@@ -531,35 +616,27 @@ div.thumbnails {
|
||||
}
|
||||
}
|
||||
|
||||
> p {
|
||||
padding-right: $bubble-padding-horizontal;
|
||||
padding-left: $bubble-padding-horizontal;
|
||||
|
||||
&:empty {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
form,
|
||||
.wiki,
|
||||
.details {
|
||||
border-top: 1px solid $bubble-border;
|
||||
}
|
||||
|
||||
.details {
|
||||
margin: 0;
|
||||
padding: $bubble-padding-vertical 0;
|
||||
padding-left: $bubble-padding-horizontal * 2.5;
|
||||
list-style: none;
|
||||
border-top: 1px solid mix($body-bg, $issue-border, 50%);
|
||||
padding-left: $bubble-padding-horizontal + 20px;
|
||||
font-size: $font-size-list;
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
margin-bottom: $bubble-padding-vertical / 2;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: -($bubble-padding-horizontal + 6px / 2);
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
background-color: $gray-600;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 0 0 -3px 4px;
|
||||
}
|
||||
@@ -574,15 +651,13 @@ div.thumbnails {
|
||||
}
|
||||
}
|
||||
|
||||
.wiki,
|
||||
form {
|
||||
.wiki {
|
||||
padding: $issue-padding;
|
||||
border-top: 1px solid $issue-border;
|
||||
}
|
||||
|
||||
form {
|
||||
padding-top: 5px;
|
||||
background-color: $gray-100;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal $bubble-padding-horizontal;
|
||||
background-color: $bubble-bg;
|
||||
|
||||
> p {
|
||||
margin-bottom: $issue-padding;
|
||||
@@ -592,6 +667,12 @@ div.thumbnails {
|
||||
}
|
||||
}
|
||||
|
||||
> label {
|
||||
display: inline-block;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
|
||||
> .wiki {
|
||||
margin: 0 (-$issue-padding) (-$issue-padding);
|
||||
padding: 0;
|
||||
@@ -626,21 +707,28 @@ div.thumbnails {
|
||||
}
|
||||
|
||||
.private-notes {
|
||||
> div {
|
||||
border-left-color: $brand-warning;
|
||||
|
||||
h4::before {
|
||||
> div > h4::before {
|
||||
border-right-color: $brand-warning;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#activity dt,
|
||||
.journal {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.journal-actions > a,
|
||||
.journal-actions .drdn-trigger {
|
||||
margin: -3px 3px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.journal-link {
|
||||
margin: -3px -3px -3px 0;
|
||||
padding: 3px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
@@ -659,21 +747,29 @@ span.private {
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
width: 45%;
|
||||
margin-left: $padding-side;
|
||||
float: right;
|
||||
|
||||
+ #history {
|
||||
margin-right: 45%;
|
||||
padding-right: $padding-side;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: 33%;
|
||||
min-width: 28em;
|
||||
|
||||
+ #history {
|
||||
margin-right: 33%;
|
||||
}
|
||||
}
|
||||
|
||||
div.changeset {
|
||||
margin-top: $line-height-computed / 2 + 2px * 2;
|
||||
margin-top: $line-height-computed * .5 + 2px * 2;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
border: 1px solid $issue-border;
|
||||
border: 1px solid $bubble-border;
|
||||
border-radius: $panel-border-radius;
|
||||
background-color: $issue-bg;
|
||||
background-color: $bubble-bg;
|
||||
font-size: $font-size-list;
|
||||
|
||||
&:first-of-type {
|
||||
@@ -686,7 +782,7 @@ span.private {
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
color: $gray-700;
|
||||
|
||||
> a {
|
||||
> a:first-child {
|
||||
font-family: $font-family-monospace;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
@@ -706,7 +802,7 @@ span.private {
|
||||
|
||||
> .wiki {
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
border-top: 1px solid mix($body-bg, $issue-border, 50%);
|
||||
border-top: 1px solid $bubble-border;
|
||||
background-color: $body-bg;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,22 +43,22 @@
|
||||
|
||||
a,
|
||||
button {
|
||||
&.ui-state-default {
|
||||
&.ui-button {
|
||||
border-color: $header-bg;
|
||||
background: $header-bg;
|
||||
box-shadow: none;
|
||||
color: $header-text;
|
||||
}
|
||||
|
||||
&.ui-state-hover,
|
||||
&.ui-state-focus {
|
||||
border-color: darken($header-bg, 12%);
|
||||
background: darken($header-bg, 10%);
|
||||
}
|
||||
|
||||
.ui-icon {
|
||||
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
|
||||
}
|
||||
}
|
||||
|
||||
&.ui-button:hover {
|
||||
border-color: darken($header-bg, 12%);
|
||||
background: darken($header-bg, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -127,6 +127,7 @@
|
||||
}
|
||||
|
||||
.ui-sortable-helper {
|
||||
background-color: $body-bg;
|
||||
@include nice-shadow(4);
|
||||
}
|
||||
|
||||
@@ -138,6 +139,23 @@
|
||||
@include nice-shadow(2);
|
||||
padding: 3px;
|
||||
border-radius: $panel-border-radius;
|
||||
|
||||
.ui-menu-item {
|
||||
&.ui-state-focus,
|
||||
&.ui-state-active {
|
||||
border-color: $pagination-hover-border;
|
||||
background-color: $pagination-hover-bg;
|
||||
color: $pagination-hover-color;
|
||||
|
||||
a {
|
||||
color: $pagination-hover-color;
|
||||
}
|
||||
|
||||
.ui-icon {
|
||||
background-image: url("../../../stylesheets/jquery/images/ui-icons_222222_256x240.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-menu-item {
|
||||
@@ -298,3 +316,17 @@ img.ui-datepicker-trigger {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-tooltip {
|
||||
@include nice-shadow(1);
|
||||
padding: $padding-small-vertical $padding-small-horizontal;
|
||||
border: 0 none;
|
||||
background: $black;
|
||||
color: $white;
|
||||
font-size: $font-size-small-px;
|
||||
pointer-events: none;
|
||||
|
||||
&.qtip {
|
||||
pointer-events: initial;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -239,3 +245,16 @@ div.jstElements {
|
||||
&::before { content: $fa-var-question-circle; }
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
.table-generator {
|
||||
td {
|
||||
border-color: $tab-border;
|
||||
}
|
||||
|
||||
td.selected-cell,
|
||||
td:hover {
|
||||
background-color: $brand-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,16 @@ table.list {
|
||||
padding: $table-cell-padding;
|
||||
border: 2px solid $table-border-color;
|
||||
border-width: $table-list-header-border;
|
||||
background-color: $body-bg;
|
||||
background-color: $table-list-header-bg;
|
||||
color: $gray-700;
|
||||
vertical-align: bottom;
|
||||
|
||||
@if $table-list-header-bg == $body-bg {
|
||||
@at-root .box & {
|
||||
background-color: $panel-bg;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: $gray-900;
|
||||
}
|
||||
@@ -46,17 +52,21 @@ table.list {
|
||||
vertical-align: top;
|
||||
|
||||
&.icon {
|
||||
padding-left: $table-cell-padding + 20px;
|
||||
padding-left: $table-cell-padding + $icon-width;
|
||||
}
|
||||
|
||||
&.id,
|
||||
&.issue_id,
|
||||
&.legacy_id,
|
||||
&.parent,
|
||||
&.relations,
|
||||
&.tracker {
|
||||
width: 2%;
|
||||
}
|
||||
|
||||
&.id {
|
||||
&.id,
|
||||
&.issue_id,
|
||||
&.legacy_id {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
@@ -76,13 +86,15 @@ table.list {
|
||||
padding-right: $table-cell-padding;
|
||||
padding-left: $table-cell-padding;
|
||||
|
||||
input {
|
||||
margin: 2px 0 0;
|
||||
@if (parse-length($table-list-item-border, right) == 0) {
|
||||
&:first-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.id {
|
||||
text-align: right;
|
||||
input {
|
||||
margin: 2px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.activity,
|
||||
@@ -96,6 +108,7 @@ table.list {
|
||||
&.last_notes,
|
||||
&.last_updated_by,
|
||||
&.name,
|
||||
&.parent-subject,
|
||||
&.priority,
|
||||
&.relations,
|
||||
&.roles,
|
||||
@@ -108,6 +121,8 @@ table.list {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.id,
|
||||
&.legacy_id,
|
||||
&.estimated_hours,
|
||||
&.float,
|
||||
&.int,
|
||||
@@ -125,10 +140,10 @@ table.list {
|
||||
white-space: nowrap;
|
||||
|
||||
a {
|
||||
padding-right: 5px;
|
||||
margin-right: $padding-small-vertical;
|
||||
|
||||
&.icon-only {
|
||||
padding: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,10 +194,15 @@ tr.issue {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
|
||||
.category,
|
||||
.enumeration,
|
||||
.list,
|
||||
.parent-subject,
|
||||
.parent,
|
||||
.relations,
|
||||
.string,
|
||||
.text,
|
||||
.subject,
|
||||
.category {
|
||||
.text {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
@@ -211,6 +231,10 @@ tr.issue {
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
&.overdue td.due_date {
|
||||
color: $brand-danger;
|
||||
}
|
||||
|
||||
@for $i from 1 through 9 {
|
||||
&.idnt-#{$i} td.subject {
|
||||
padding-left: $table-cell-padding + 16px * $i;
|
||||
@@ -220,10 +244,23 @@ tr.issue {
|
||||
}
|
||||
|
||||
.issues {
|
||||
.block_column,
|
||||
.description,
|
||||
.last_notes {
|
||||
padding: $table-cell-padding;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
|
||||
> span {
|
||||
display: block;
|
||||
margin-bottom: $line-height-computed * .25;
|
||||
padding: $table-cell-padding;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-sm-min) {
|
||||
> .wiki {
|
||||
@@ -232,25 +269,38 @@ tr.issue {
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr {
|
||||
span.expander {
|
||||
margin-left: 0;
|
||||
padding-left: 8px;
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
float: left;
|
||||
|
||||
&.icon {
|
||||
padding-left: 18px;
|
||||
text-align: center;
|
||||
|
||||
&::before {
|
||||
margin: 0 0 0 -18px;
|
||||
color: $gray-600;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.icon) {
|
||||
width: 18px;
|
||||
padding: 0;
|
||||
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.open span.expander {
|
||||
&.open span.expander:not(.icon) {
|
||||
background-image: inline-svg("minus.svg", (path: (fill: $btn-default-icon-color)));
|
||||
}
|
||||
}
|
||||
@@ -259,10 +309,35 @@ td.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td.assigned_to,
|
||||
td.last_updated_by {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.issue-report {
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.issue-report-graph {
|
||||
width: 75%;
|
||||
margin: $line-height-computed auto;
|
||||
}
|
||||
|
||||
.sample-data {
|
||||
margin: $line-height-computed * .5;
|
||||
margin-bottom: $line-height-computed;
|
||||
border: 1px solid $table-border-color;
|
||||
|
||||
td {
|
||||
border: 1px solid $table-border-color;
|
||||
}
|
||||
|
||||
tr:first-child td {
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
tr.builtin td.name {
|
||||
font-style: italic;
|
||||
}
|
||||
@@ -300,13 +375,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;
|
||||
@@ -315,7 +390,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;
|
||||
@@ -324,8 +399,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -349,8 +432,33 @@ 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,
|
||||
tr.issue .legacy_id > a,
|
||||
a.issue,
|
||||
.relations > span > a.issue,
|
||||
.parent > a.issue {
|
||||
@@ -387,7 +495,7 @@ tr.entry {
|
||||
right: 5px;
|
||||
bottom: 0;
|
||||
left: 5px;
|
||||
height: calc(50% - 2px / 2);
|
||||
height: calc(50% - 2px * .5);
|
||||
transform: rotate(-4deg);
|
||||
transition: border-color $transition-time;
|
||||
border-top: 2px solid rgba($tracker-default-text, .95);
|
||||
@@ -399,7 +507,8 @@ tr.entry {
|
||||
}
|
||||
}
|
||||
|
||||
tr.issue .id > a {
|
||||
tr.issue .id > a,
|
||||
tr.issue .legacy_id > a {
|
||||
display: block;
|
||||
padding: $tracker-list-padding;
|
||||
|
||||
@@ -409,6 +518,11 @@ tr.entry {
|
||||
}
|
||||
}
|
||||
|
||||
tr.issue .issue_id > a {
|
||||
display: inline-block;
|
||||
padding: $tracker-list-padding;
|
||||
}
|
||||
|
||||
@each $tracker-id, $tracker-colors in $tracker-colors-map {
|
||||
@include tracker(
|
||||
".tracker-#{$tracker-id}",
|
||||
@@ -442,18 +556,6 @@ tr.group {
|
||||
&:hover .toggle-all {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.count {
|
||||
display: inline-block;
|
||||
min-width: 1em;
|
||||
margin: 0 5px;
|
||||
padding: 1px 4px;
|
||||
border-radius: $border-radius-small;
|
||||
background-color: $brand-primary;
|
||||
color: $brand-text;
|
||||
font-size: $font-size-small;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.toggle-all:hover {
|
||||
@@ -608,7 +710,7 @@ table.files {
|
||||
|
||||
tr.file td {
|
||||
&.filename {
|
||||
padding-left: 20px + $table-cell-padding;
|
||||
padding-left: $icon-width + $table-cell-padding;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -651,6 +753,15 @@ table.list.enumerations {
|
||||
//
|
||||
|
||||
.query-totals {
|
||||
#content & {
|
||||
margin-top: 0;
|
||||
|
||||
@media screen and (min-width: $redmine-responsive-min) {
|
||||
margin-top: -($line-height-computed * 2 + $btn-padding-vertical);
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
> span {
|
||||
margin-right: $padding-base-horizontal;
|
||||
|
||||
|
||||
@@ -33,6 +33,11 @@
|
||||
margin-bottom: $panel-body-padding-vertical;
|
||||
}
|
||||
|
||||
#login-submit {
|
||||
padding-top: $padding-base-vertical;
|
||||
padding-bottom: $padding-base-vertical;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: auto;
|
||||
table-layout: fixed;
|
||||
@@ -86,3 +91,21 @@
|
||||
background-repeat: no-repeat;
|
||||
background-position: right $input-padding-horizontal center;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Two-factor authentication
|
||||
// --------------------------------------------------
|
||||
|
||||
.controller-twofa {
|
||||
.splitcontentleft {
|
||||
width: auto;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
ul.twofa_backup_codes {
|
||||
margin-left: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,29 @@
|
||||
@use "sass:math";
|
||||
|
||||
//
|
||||
// Additionals
|
||||
// https://www.redmine.org/plugins/additionals
|
||||
// --------------------------------------------------
|
||||
|
||||
#sidebar .dashboards .dashboard-system-default {
|
||||
position: absolute;
|
||||
transform: translateY(- ($sidebar-padding-vertical + math.div($line-height-computed, 2) + math.div($font-size-base, 2)));
|
||||
@if $sidebar-position == "right" {
|
||||
right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.flyout-menu .dashboard-system-default {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
transform: translateY(- ($padding-large-vertical + math.div($line-height-computed, 2) + math.div($font-size-base, 2)));
|
||||
}
|
||||
|
||||
|
||||
#sidebar .sidebar-additionals {
|
||||
ul,
|
||||
ol {
|
||||
margin: 0 0 ($line-height-computed / 2);
|
||||
margin: 0 0 ($line-height-computed * .5);
|
||||
padding-left: 1.5em;
|
||||
|
||||
ul,
|
||||
@@ -39,6 +56,247 @@
|
||||
}
|
||||
}
|
||||
|
||||
#my-page.dashboard {
|
||||
.mypage-box:not(.block-welcome, .block-projectinformation, .block-text, .block-text_async) {
|
||||
margin-bottom: $line-height-computed;
|
||||
padding: $panel-body-padding;
|
||||
border: 1px solid $panel-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $panel-bg;
|
||||
color: $panel-color;
|
||||
font-size: .92em;
|
||||
word-wrap: break-word;
|
||||
|
||||
> h3 {
|
||||
margin-bottom: $panel-body-padding-vertical;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.controller-rdb_taskboard .gototop {
|
||||
margin-right: $padding-side;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Additional tags
|
||||
// https://www.redmine.org/plugins/additional_tags
|
||||
// --------------------------------------------------
|
||||
|
||||
.issue .tags.attribute {
|
||||
padding-left: 160px;
|
||||
|
||||
.label {
|
||||
width: 160px;
|
||||
margin-left: -160px;
|
||||
}
|
||||
|
||||
#tags-data {
|
||||
padding-top: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
#main {
|
||||
.additional-tag-label-color {
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#admin-menu a.additional-tags::before {
|
||||
font-size: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
#wiki_tags,
|
||||
#edit-tags-form {
|
||||
.select2-container {
|
||||
margin-bottom: 5px;
|
||||
|
||||
&.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
||||
margin: 0;
|
||||
padding: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine Dashboard
|
||||
// https://www.redmine.org/plugins/redmine-dashboard
|
||||
// --------------------------------------------------
|
||||
|
||||
#rdb-taskboard {
|
||||
#rdb-header {
|
||||
a#rdb-refresh {
|
||||
padding: 2px 0;
|
||||
border-width: 0;
|
||||
background-image: none;
|
||||
line-height: 1.2em;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-refresh;
|
||||
@include fa-icon;
|
||||
width: 1em;
|
||||
margin: 0 auto;
|
||||
color: $green;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
}
|
||||
|
||||
.rdb-board .rdb-menu h2 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.rdb-board,
|
||||
.rdb-filter,
|
||||
.rdb-option {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
a#rdb-refresh,
|
||||
a#rdb-refresh:focus,
|
||||
a#rdb-refresh:hover,
|
||||
.rdb-menu-link,
|
||||
.rdb-menu-link:focus,
|
||||
.rdb-menu-link:hover,
|
||||
.rdb-menu .rdb-list a,
|
||||
.rdb-menu .rdb-list a:focus,
|
||||
.rdb-menu .rdb-list a:hover {
|
||||
color: $gray-900;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div:not(.rdb-card-header, .rdb-compact-header, .rdb-card-title) .rdb-menu {
|
||||
.rdb-list {
|
||||
> ul > li > a,
|
||||
.rdb-multicheck a {
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
.rdb-checkbox-link.rdb-checkbox-link-enabled {
|
||||
background-image: none;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-check;
|
||||
@include fa-icon;
|
||||
color: $green;
|
||||
}
|
||||
}
|
||||
|
||||
.rdb-checkbox-link.rdb-checkbox-link-disabled {
|
||||
padding: 0;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: .9em;
|
||||
|
||||
&#rdb-reset {
|
||||
background-image: none;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-times;
|
||||
@include fa-icon;
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.rdb-menu-right .rdb-checkbox-link.rdb-checkbox-link-enabled::before {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.rdb-container h3 {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.rdb-headers .rdb-column h3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.rdb-evt-group-toggle,
|
||||
.rdb-evt-group-toggle:focus,
|
||||
.rdb-evt-group-toggle:hover {
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.rdb-card-header .rdb-menu-issue a.rdb-menu-link,
|
||||
.rdb-compact-header .rdb-menu-issue a.rdb-menu-link,
|
||||
.rdb-card-title > a {
|
||||
background-image: none;
|
||||
|
||||
&::after {
|
||||
content: $fa-var-cog;
|
||||
@include fa-icon;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 2px;
|
||||
color: $gray-600;
|
||||
}
|
||||
}
|
||||
|
||||
.rdb-property-tracker {
|
||||
padding-left: 0;
|
||||
background-image: none;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-ticket;
|
||||
@include fa-icon;
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.rdb-property-assignee {
|
||||
padding-left: 0;
|
||||
background-image: none;
|
||||
|
||||
&::before {
|
||||
content: $fa-var-user;
|
||||
@include fa-icon;
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#rdb-footer #rdb-legend .rdb-overdue {
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine Impersonate
|
||||
// https://www.redmine.org/plugins/redmine_impersonate
|
||||
// --------------------------------------------------
|
||||
|
||||
#impersonate::before {
|
||||
content: $fa-var-user-secret;
|
||||
@include fa-icon;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#impersonation-bar {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine Recaptcha
|
||||
// https://www.redmine.org/plugins/recaptcha
|
||||
// --------------------------------------------------
|
||||
|
||||
.new-user .g-recaptcha {
|
||||
padding-left: 170px;
|
||||
|
||||
@media screen and (max-width: $redmine-responsive-max) {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine Backlogs
|
||||
@@ -86,18 +344,128 @@
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 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 * .5;
|
||||
|
||||
&: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 {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: -($line-height-computed / 2 + 1px) ($bubble-padding-horizontal - $padding-small-vertical) 0;
|
||||
margin: -($line-height-computed * .5 + 1px) ($bubble-padding-horizontal - $padding-small-vertical) 0;
|
||||
float: right;
|
||||
border: 0;
|
||||
background-color: $body-bg;
|
||||
@@ -142,7 +510,7 @@
|
||||
> a:first-child {
|
||||
margin-right: 0;
|
||||
margin-left: 4px;
|
||||
padding-right: floor($btn-padding-horizontal-small / 2);
|
||||
padding-right: floor($btn-padding-horizontal-small * .5);
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
|
||||
@@ -156,6 +524,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
.controller-hearts .recent-heart-list li {
|
||||
padding: $padding-large-vertical;
|
||||
}
|
||||
|
||||
#wiki_form.new_content + .wiki_page--heart,
|
||||
#wiki_form.new_content + .heart-link-with-count {
|
||||
display: none;
|
||||
}
|
||||
|
||||
//
|
||||
// Redmine Time Tracker
|
||||
@@ -200,11 +576,155 @@
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// RedmineUP
|
||||
// https://www.redmineup.com/pages/plugins
|
||||
// --------------------------------------------------
|
||||
|
||||
h2 {
|
||||
.scope_title,
|
||||
.live_search,
|
||||
.tags {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.live_search {
|
||||
margin-left: $padding-side * .5;
|
||||
}
|
||||
|
||||
.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 +749,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 +796,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,15 +853,80 @@
|
||||
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;
|
||||
|
||||
&.icon {
|
||||
padding-left: 18px + 8px;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 8px;
|
||||
margin: ($fa-font-size-base * -.5) 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.select2-container--focus {
|
||||
&.select2-container {
|
||||
&:focus,
|
||||
* {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&--open,
|
||||
&--focus {
|
||||
.select2-selection {
|
||||
border-color: rgba($input-border-focus, $input-border-focus-alpha);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select2-search__field {
|
||||
&:focus {
|
||||
border-color: rgba($input-border-focus, $input-border-focus-alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.tag-label-color {
|
||||
@at-root body & {
|
||||
padding: 0 !important; // stylelint-disable-line declaration-no-important
|
||||
border: 0 !important; // stylelint-disable-line declaration-no-important
|
||||
border-radius: $badge-border-radius;
|
||||
box-shadow: inset 0 -1px 0 rgba($black, .12);
|
||||
font-size: $font-size-small-px;
|
||||
|
||||
a,
|
||||
span {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
> a,
|
||||
> span {
|
||||
display: inline-block;
|
||||
padding: 1px 5px;
|
||||
text-shadow: 0 1px 0 rgba($black, .2);
|
||||
}
|
||||
|
||||
a {
|
||||
&:hover {
|
||||
opacity: .8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list td.tags {
|
||||
padding-bottom: max(parse-length($table-cell-padding, bottom) - 2px - 1px, 0);
|
||||
|
||||
span.tag-label-color {
|
||||
margin-bottom: 2px;
|
||||
margin-left: 0;
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -286,17 +935,39 @@
|
||||
// https://www.redmineup.com/pages/plugins/checklists
|
||||
// --------------------------------------------------
|
||||
|
||||
.checklist {
|
||||
li {
|
||||
a {
|
||||
margin: 0;
|
||||
line-height: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#checklist_form_items {
|
||||
.checklist-item {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding-top: $check-list-offset-top;
|
||||
line-height: initial;
|
||||
margin: 0 0 2px;
|
||||
|
||||
&.new {
|
||||
padding-top: $padding-base-vertical;
|
||||
line-height: inherit;
|
||||
margin: $padding-base-vertical 0 0;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
input[type="button"] {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#checklist-menu.ui-menu {
|
||||
a {
|
||||
padding: 2px 0 2px 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,8 +1021,8 @@
|
||||
margin: 0;
|
||||
|
||||
form > input {
|
||||
width: $quick-search-width / 2;
|
||||
min-width: $quick-search-width / 2;
|
||||
width: $quick-search-width * .5;
|
||||
min-width: $quick-search-width * .5;
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -361,130 +1032,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,19 +20,23 @@ table.progress {
|
||||
float: none;
|
||||
}
|
||||
|
||||
tr {
|
||||
background: transparent !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
|
||||
td {
|
||||
height: $progress-height;
|
||||
padding: 0;
|
||||
border: 0 none;
|
||||
|
||||
&:first-child {
|
||||
border-top-left-radius: $progress-height / 2;
|
||||
border-bottom-left-radius: $progress-height / 2;
|
||||
border-top-left-radius: $progress-height * .5;
|
||||
border-bottom-left-radius: $progress-height * .5;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-top-right-radius: $progress-height / 2;
|
||||
border-bottom-right-radius: $progress-height / 2;
|
||||
border-top-right-radius: $progress-height * .5;
|
||||
border-bottom-right-radius: $progress-height * .5;
|
||||
}
|
||||
|
||||
&.done {
|
||||
@@ -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 {
|
||||
@@ -60,8 +69,6 @@ p {
|
||||
}
|
||||
|
||||
&.progress-info {
|
||||
margin-top: -4px;
|
||||
margin-bottom: 0;
|
||||
clear: left;
|
||||
color: $gray-700;
|
||||
font-size: 80%;
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
.hidden,
|
||||
.mobile-show {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.inline-flex {
|
||||
display: inline-flex;
|
||||
|
||||
body.controller-issues h2 & {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// stylelint-disable selector-max-compound-selectors
|
||||
.theme-Purplemine2 {
|
||||
body {
|
||||
@media screen and (max-width: $redmine-responsive-max) {
|
||||
.flyout-menu + div {
|
||||
#header {
|
||||
@@ -27,6 +40,8 @@
|
||||
}
|
||||
|
||||
#header {
|
||||
background-color: $header-bg;
|
||||
|
||||
#project-jump {
|
||||
padding: 0 $responsive-header-height 0 0;
|
||||
|
||||
@@ -40,11 +55,14 @@
|
||||
}
|
||||
|
||||
.drdn-trigger {
|
||||
@include text-overflow;
|
||||
display: block;
|
||||
height: $responsive-header-height;
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
font-size: $font-size-large;
|
||||
font-weight: $font-weight-normal;
|
||||
line-height: $responsive-header-height;
|
||||
|
||||
&::before {
|
||||
@@ -66,10 +84,20 @@
|
||||
|
||||
.drdn-content {
|
||||
top: $responsive-header-height;
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#content {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#ajax-indicator {
|
||||
left: 50%;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.mobile-toggle-button {
|
||||
width: $responsive-header-height;
|
||||
height: $responsive-header-height;
|
||||
@@ -84,9 +112,13 @@
|
||||
background-color: $flyout-menu-bg;
|
||||
color: $flyout-menu-text;
|
||||
|
||||
.search-magnifier {
|
||||
left: 18px;
|
||||
}
|
||||
|
||||
&__search {
|
||||
height: $responsive-header-height;
|
||||
padding: ($padding-side / 2);
|
||||
padding: ($padding-side * .5);
|
||||
line-height: normal;
|
||||
|
||||
input[type="text"] {
|
||||
@@ -95,39 +127,156 @@
|
||||
}
|
||||
}
|
||||
|
||||
&__avatar {
|
||||
img.gravatar {
|
||||
top: 0;
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
&__sidebar {
|
||||
p {
|
||||
padding-left: $padding-large-horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
li:nth-child(n) {
|
||||
a:not(.icon-only) {
|
||||
height: auto;
|
||||
padding: $padding-large-vertical $padding-large-horizontal;
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
}
|
||||
|
||||
&.queries {
|
||||
li {
|
||||
display: flex;
|
||||
|
||||
a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $flyout-menu-link;
|
||||
}
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-top: 1px solid $flyout-menu-header-border;
|
||||
border-bottom: 1px solid $flyout-menu-header-border;
|
||||
background-color: $flyout-menu-header-bg;
|
||||
color: $flyout-menu-header-text;
|
||||
}
|
||||
.icon-only {
|
||||
flex: 0;
|
||||
padding-right: 0;
|
||||
padding-left: 40px;
|
||||
text-align: center;
|
||||
text-overflow: initial;
|
||||
|
||||
#admin-menu {
|
||||
a {
|
||||
background-position: 8px center;
|
||||
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
&::before {
|
||||
width: 40px;
|
||||
margin-left: -40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $flyout-menu-link;
|
||||
|
||||
&::before,
|
||||
span {
|
||||
color: inherit !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background-color: $body-bg;
|
||||
color: $text-color;
|
||||
background-color: $flyout-menu-link-active-bg;
|
||||
color: $flyout-menu-link-active;
|
||||
}
|
||||
}
|
||||
|
||||
h3,
|
||||
h4 {
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
border-top: 1px solid $flyout-menu-header-border;
|
||||
border-bottom: 1px solid $flyout-menu-header-border;
|
||||
background-color: $flyout-menu-header-bg;
|
||||
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 {
|
||||
a {
|
||||
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
|
||||
|
||||
&.additionals {
|
||||
padding-left: 32px !important; // stylelint-disable-line declaration-no-important
|
||||
|
||||
&::before {
|
||||
color: $text-color;
|
||||
margin-right: $padding-small-vertical;
|
||||
font-size: $fa-font-size-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#watchers {
|
||||
.contextual {
|
||||
padding-top: $line-height-computed * .5;
|
||||
padding-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
.watchers {
|
||||
li {
|
||||
margin: ($line-height-computed * .5) 0 0;
|
||||
padding: 0;
|
||||
|
||||
img.gravatar {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
height: auto;
|
||||
border-top: 0;
|
||||
line-height: initial;
|
||||
}
|
||||
|
||||
.delete {
|
||||
margin-right: $padding-large-vertical;
|
||||
margin-left: auto;
|
||||
float: none;
|
||||
text-align: center;
|
||||
text-overflow: initial;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,8 +373,25 @@
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
margin-top: $check-input-margin-btn-v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#content > .contextual > span {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#content > .contextual > a,
|
||||
#content > .contextual .drdn,
|
||||
p.buttons a {
|
||||
display: inline-block;
|
||||
margin: 0 2px 5px 0;
|
||||
float: none;
|
||||
}
|
||||
|
||||
// For Redmine 4.0+
|
||||
#content > .contextual .drdn {
|
||||
@@ -239,6 +405,8 @@
|
||||
.drdn-items {
|
||||
a {
|
||||
margin: 3px 0 0;
|
||||
padding-top: $btn-padding-vertical;
|
||||
padding-bottom: $btn-padding-vertical;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
@@ -249,16 +417,81 @@
|
||||
|
||||
// For Redmine 3.4+
|
||||
#my-page {
|
||||
#list-left {
|
||||
width: 100%;
|
||||
padding-right: 0;
|
||||
float: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#list-right {
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
float: none;
|
||||
div#issue-changesets {
|
||||
div.changeset {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#admin-index > #admin-menu li {
|
||||
padding: 0;
|
||||
|
||||
a {
|
||||
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
|
||||
}
|
||||
}
|
||||
|
||||
/* Calendar */
|
||||
ul.cal {
|
||||
display: block;
|
||||
|
||||
.calhead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.calbody {
|
||||
min-height: calc(1.2em * 3);
|
||||
}
|
||||
|
||||
.calbody .day-letter {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.week-number {
|
||||
border: none;
|
||||
background-color: $table-bg-active;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
|
||||
span.label-week {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
.week-number .label-week {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.calbody p.day-num {
|
||||
font-size: 1.1em;
|
||||
text-align: left;
|
||||
|
||||
.abbr-day {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Tweaks for smartphones, touchscreens
|
||||
@media (hover: none) and (pointer: coarse) {
|
||||
.mobile-toggle-button::after {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.query-columns {
|
||||
span {
|
||||
display: block;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
input[type="button"] {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
//
|
||||
// Syntax highlight - Rouge
|
||||
// --------------------------------------------------
|
||||
|
||||
.syntaxhl {
|
||||
background: #fafafa;
|
||||
color: #24292e;
|
||||
|
||||
.hll {
|
||||
background-color: #ffc;
|
||||
@@ -11,92 +7,59 @@
|
||||
|
||||
// Comment
|
||||
.c {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
// Error
|
||||
.err {
|
||||
background-color: #faa;
|
||||
color: #f00;
|
||||
color: #6a737d;
|
||||
}
|
||||
|
||||
// Keyword
|
||||
.k {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// Operator
|
||||
.o {
|
||||
color: #333;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Comment.Hashbang
|
||||
.ch {
|
||||
color: #888;
|
||||
color: #6a737d;
|
||||
}
|
||||
|
||||
// Comment.Multiline
|
||||
.cm {
|
||||
color: #888;
|
||||
color: #6a737d;
|
||||
}
|
||||
|
||||
// Comment.Preproc
|
||||
.cp {
|
||||
color: #579;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Comment.PreprocFile
|
||||
.cpf {
|
||||
color: #888;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Comment.Single
|
||||
.c1 {
|
||||
color: #888;
|
||||
color: #6a737d;
|
||||
}
|
||||
|
||||
// Comment.Special
|
||||
.cs {
|
||||
color: #c00;
|
||||
font-weight: bold;
|
||||
color: #6a737d;
|
||||
}
|
||||
|
||||
// Generic.Deleted
|
||||
.gd {
|
||||
color: #a00000;
|
||||
}
|
||||
|
||||
// Generic.Emph
|
||||
.ge {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// Generic.Error
|
||||
.gr {
|
||||
color: #f00;
|
||||
background-color: #ffeef0;
|
||||
color: #b31d28;
|
||||
}
|
||||
|
||||
// Generic.Heading
|
||||
.gh {
|
||||
color: #000080;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Generic.Inserted
|
||||
.gi {
|
||||
color: #00a000;
|
||||
}
|
||||
|
||||
// Generic.Output
|
||||
.go {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
// Generic.Prompt
|
||||
.gp {
|
||||
color: #c65d09;
|
||||
font-weight: bold;
|
||||
background-color: #f0fff4;
|
||||
color: #22863a;
|
||||
}
|
||||
|
||||
// Generic.Strong
|
||||
@@ -106,7 +69,7 @@
|
||||
|
||||
// Generic.Subheading
|
||||
.gu {
|
||||
color: #800080;
|
||||
color: #6f42c1;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -117,123 +80,112 @@
|
||||
|
||||
// Keyword.Constant
|
||||
.kc {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Keyword.Declaration
|
||||
.kd {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Keyword.Namespace
|
||||
.kn {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Keyword.Pseudo
|
||||
.kp {
|
||||
color: #038;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Keyword.Reserved
|
||||
.kr {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Keyword.Type
|
||||
.kt {
|
||||
color: #339;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Literal.Number
|
||||
.m {
|
||||
color: #60e;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.String
|
||||
.s {
|
||||
background-color: #fff0f0;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Name.Attribute
|
||||
.na {
|
||||
color: #00c;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Builtin
|
||||
.nb {
|
||||
color: #007020;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Class
|
||||
.nc {
|
||||
color: #b06;
|
||||
font-weight: bold;
|
||||
color: #6f42c1;
|
||||
}
|
||||
|
||||
// Name.Constant
|
||||
.no {
|
||||
color: #036;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Decorator
|
||||
.nd {
|
||||
color: #555;
|
||||
font-weight: bold;
|
||||
color: #6f42c1;
|
||||
}
|
||||
|
||||
// Name.Entity
|
||||
.ni {
|
||||
color: #800;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Exception
|
||||
.ne {
|
||||
color: #f00;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Function
|
||||
.nf {
|
||||
color: #06b;
|
||||
font-weight: bold;
|
||||
color: #6f42c1;
|
||||
}
|
||||
|
||||
// Name.Label
|
||||
.nl {
|
||||
color: #970;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Namespace
|
||||
.nn {
|
||||
color: #0e84b5;
|
||||
font-weight: bold;
|
||||
color: #6f42c1;
|
||||
}
|
||||
|
||||
// Name.Tag
|
||||
.nt {
|
||||
color: #070;
|
||||
color: #22863a;
|
||||
}
|
||||
|
||||
// Name.Variable
|
||||
.nv {
|
||||
color: #963;
|
||||
color: #24292e;
|
||||
}
|
||||
|
||||
// Operator
|
||||
.o {
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Operator.Word
|
||||
.ow {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Text.Whitespace
|
||||
@@ -243,138 +195,126 @@
|
||||
|
||||
// Literal.Number.Bin
|
||||
.mb {
|
||||
color: #60e;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.Number.Float
|
||||
.mf {
|
||||
color: #60e;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.Number.Hex
|
||||
.mh {
|
||||
color: #058;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.Number.Integer
|
||||
.mi {
|
||||
color: #00d;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.Number.Oct
|
||||
.mo {
|
||||
color: #40e;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.String.Affix
|
||||
.sa {
|
||||
background-color: #fff0f0;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Literal.String.Backtick
|
||||
.sb {
|
||||
background-color: #fff0f0;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Char
|
||||
.sc {
|
||||
color: #04d;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Delimiter
|
||||
.dl {
|
||||
background-color: #fff0f0;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
// Literal.String.Doc
|
||||
.sd {
|
||||
color: #d42;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Double
|
||||
.s2 {
|
||||
background-color: #fff0f0;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Escape
|
||||
.se {
|
||||
background-color: #fff0f0;
|
||||
color: #666;
|
||||
font-weight: bold;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Heredoc
|
||||
.sh {
|
||||
background-color: #fff0f0;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Interpol
|
||||
.si {
|
||||
background-color: #eee;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.String.Other
|
||||
.sx {
|
||||
background-color: #fff0f0;
|
||||
color: #d20;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Regex
|
||||
.sr {
|
||||
background-color: #fff0ff;
|
||||
color: #000;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Single
|
||||
.s1 {
|
||||
background-color: #fff0f0;
|
||||
color: #032f62;
|
||||
}
|
||||
|
||||
// Literal.String.Symbol
|
||||
.ss {
|
||||
color: #a60;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Builtin.Pseudo
|
||||
.bp {
|
||||
color: #007020;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Function.Magic
|
||||
.fm {
|
||||
color: #06b;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Name.Variable.Class
|
||||
.vc {
|
||||
color: #369;
|
||||
color: #24292e;
|
||||
}
|
||||
|
||||
// Name.Variable.Global
|
||||
.vg {
|
||||
color: #d70;
|
||||
font-weight: bold;
|
||||
color: #24292e;
|
||||
}
|
||||
|
||||
// Name.Variable.Instance
|
||||
.vi {
|
||||
color: #33b;
|
||||
color: #24292e;
|
||||
}
|
||||
|
||||
// Name.Variable.Magic
|
||||
.vm {
|
||||
color: #963;
|
||||
color: #005cc5;
|
||||
}
|
||||
|
||||
// Literal.Number.Integer.Long
|
||||
.il {
|
||||
color: #00d;
|
||||
font-weight: bold;
|
||||
color: #005cc5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,10 +105,17 @@
|
||||
input,
|
||||
select {
|
||||
margin-right: 5px;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
}
|
||||
|
||||
label {
|
||||
@include check-inline;
|
||||
line-height: $input-height-base;
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
margin-top: $check-input-margin-btn-v;
|
||||
}
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
|
||||
@@ -84,7 +84,7 @@ $tabs-height: $line-height-computed + $tab-padding-vertical * 2 + 1px + 1px;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
opacity: $icon-opacity / 2;
|
||||
opacity: $icon-opacity * .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -73,7 +76,7 @@
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0 .5em 0 0;
|
||||
margin: 0 .8em 0 0;
|
||||
padding: 0;
|
||||
float: left;
|
||||
list-style-type: none;
|
||||
@@ -101,7 +104,7 @@
|
||||
|
||||
> ul > li {
|
||||
margin-right: 0;
|
||||
margin-left: .5em;
|
||||
margin-left: .8em;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +159,7 @@
|
||||
|
||||
#quick-search {
|
||||
#header & {
|
||||
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) / 2) - 1px;
|
||||
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) * .5) - 1px;
|
||||
margin-right: $header-padding-horizontal;
|
||||
float: right;
|
||||
color: $header-text;
|
||||
@@ -200,7 +203,7 @@
|
||||
.drdn-trigger {
|
||||
z-index: 1003;
|
||||
height: auto;
|
||||
padding-bottom: $header-padding-horizontal / 2;
|
||||
padding-bottom: $header-padding-horizontal * .5;
|
||||
border-color: $quick-search-dropdown-bg;
|
||||
background-color: $quick-search-dropdown-bg;
|
||||
|
||||
@@ -220,7 +223,7 @@
|
||||
&::after {
|
||||
content: $fa-var-caret-down;
|
||||
position: absolute;
|
||||
top: ($font-size-base / 2);
|
||||
top: ($font-size-base * .5);
|
||||
right: $input-padding-horizontal;
|
||||
}
|
||||
}
|
||||
@@ -230,7 +233,7 @@
|
||||
background: $quick-search-dropdown-bg;
|
||||
|
||||
> .quick-search {
|
||||
padding: $header-padding-horizontal / 2;
|
||||
padding: $header-padding-horizontal * .5;
|
||||
|
||||
> input {
|
||||
width: 100%;
|
||||
@@ -330,6 +333,7 @@
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: $main-menu-bg-hover;
|
||||
box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover;
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -337,6 +341,7 @@
|
||||
&.selected {
|
||||
padding-bottom: $main-menu-padding-vertical - $main-menu-shadow-width;
|
||||
border-bottom: 3px solid $main-menu-shadow-active;
|
||||
background-color: $main-menu-bg-active;
|
||||
box-shadow: none;
|
||||
color: $main-menu-link-active;
|
||||
font-weight: $font-weight-semi-bold;
|
||||
@@ -421,6 +426,10 @@
|
||||
box-sizing: border-box;
|
||||
height: $tabs-height - 1px;
|
||||
background-color: $main-menu-bg;
|
||||
|
||||
&:hover {
|
||||
background-color: $main-menu-bg-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -116,6 +116,8 @@ div.wiki {
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-bottom: 1em;
|
||||
|
||||
> :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
@@ -157,7 +159,8 @@ div.wiki {
|
||||
}
|
||||
|
||||
li > p {
|
||||
margin-top: ($line-height-computed / 2);
|
||||
margin-top: .25em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
@@ -169,7 +172,10 @@ div.wiki {
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
tr:nth-child(2n) {
|
||||
// Textile
|
||||
tbody:first-child tr:nth-child(2n),
|
||||
// Markdown
|
||||
thead + tbody tr:nth-child(2n-1) {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
|
||||
@@ -179,7 +185,8 @@ div.wiki {
|
||||
border: 1px solid $table-border-color;
|
||||
}
|
||||
|
||||
.noborder {
|
||||
.noborder,
|
||||
.wiki-class-noborder {
|
||||
border: 0 none;
|
||||
|
||||
td,
|
||||
@@ -195,19 +202,18 @@ div.wiki {
|
||||
code {
|
||||
padding: .2em .33em;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: rgba($black, .04);
|
||||
background-color: rgba($gray-500, .3);
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
|
||||
pre {
|
||||
width: auto;
|
||||
margin-bottom: 1.15em;
|
||||
padding: 4px 8px;
|
||||
padding: 12px 15px;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
border: 1px solid rgba($black, .068);
|
||||
border-radius: $border-radius-base;
|
||||
background-color: rgba($black, .03);
|
||||
background-color: rgba($gray-500, .15);
|
||||
font-size: $font-size-small;
|
||||
|
||||
code {
|
||||
@@ -224,32 +230,29 @@ div.wiki {
|
||||
}
|
||||
|
||||
.toc {
|
||||
display: table;
|
||||
max-width: 45%;
|
||||
margin-bottom: $line-height-computed;
|
||||
margin-left: 0;
|
||||
padding: 0;
|
||||
padding: $padding-small-vertical $padding-small-horizontal;
|
||||
list-style-type: none;
|
||||
|
||||
&.right,
|
||||
&.left {
|
||||
max-width: 45%;
|
||||
padding: 8px;
|
||||
border: 1px solid $highlight-border;
|
||||
border: 1px solid $toc-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $highlight-bg;
|
||||
box-shadow: $panel-shadow;
|
||||
background-color: $toc-bg;
|
||||
box-shadow: $toc-shadow;
|
||||
color: $toc-text;
|
||||
font-size: $font-size-small;
|
||||
|
||||
a {
|
||||
color: $highlight-text;
|
||||
color: $toc-link;
|
||||
font-weight: $font-weight-normal;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
color: darken($highlight-text, 10%);
|
||||
color: $toc-link-hover;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.right {
|
||||
margin-right: 0;
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ p.footnote {
|
||||
display: block;
|
||||
width: 300px;
|
||||
margin-top: $line-height-computed;
|
||||
padding-top: $line-height-computed / 2;
|
||||
padding-top: $line-height-computed * .5;
|
||||
border-top: 1px solid $gray-400;
|
||||
}
|
||||
|
||||
@@ -353,6 +353,16 @@ p.footnote {
|
||||
}
|
||||
}
|
||||
|
||||
.ltr,
|
||||
.wiki-class-ltr {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.rtl,
|
||||
.wiki-class-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.preview {
|
||||
margin-top: $line-height-computed;
|
||||
padding: $padding-wiki;
|
||||
@@ -398,7 +408,7 @@ p.footnote {
|
||||
display: inline-block;
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
border: 1px solid $btn-default-border;
|
||||
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) / 2;
|
||||
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) * .5;
|
||||
background-color: $body-bg;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
|
||||
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);
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
@if $enable-sidebar-toggler {
|
||||
#main {
|
||||
position: relative;
|
||||
// Fix full screen view for dashboard plugin
|
||||
// https://github.com/jgraichen/redmine_dashboard
|
||||
@at-root .controller-rdb_taskboard & {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
@@ -32,9 +36,11 @@
|
||||
.sidebar-toggler {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
z-index: 2;
|
||||
bottom: -1px;
|
||||
width: 14px;
|
||||
height: 16px;
|
||||
transform: translateY(100%);
|
||||
border: 2px solid $gray-700;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $gray-200;
|
||||
|
||||
4
src/sass/lib/font-awesome/_variables.scss
vendored
@@ -1,3 +1,5 @@
|
||||
@use "sass:math";
|
||||
|
||||
// Variables
|
||||
// --------------------------
|
||||
|
||||
@@ -8,7 +10,7 @@ $fa-css-prefix: fa !default;
|
||||
$fa-version: "4.7.0" !default;
|
||||
$fa-border-color: #eee !default;
|
||||
$fa-inverse: #fff !default;
|
||||
$fa-li-width: (30em / 14) !default;
|
||||
$fa-li-width: math.div(30em, 14) !default;
|
||||
|
||||
$fa-var-500px: "\f26e";
|
||||
$fa-var-address-book: "\f2b9";
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
|
||||
@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} {
|
||||
|
||||
@@ -256,8 +256,8 @@ ul.ui-sortable {
|
||||
.ui-tooltip {
|
||||
.ui-tooltip-content {
|
||||
hr {
|
||||
margin-top: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-top: $line-height-computed * .5;
|
||||
margin-bottom: $line-height-computed * .5;
|
||||
border: 0;
|
||||
border-top: 1px solid $hr-border;
|
||||
}
|
||||
|
||||
@@ -51,17 +51,17 @@ $story-sp-input-width: 50px;
|
||||
//
|
||||
|
||||
#backlogs_container {
|
||||
padding: ($padding-side / 2) ($padding-side / 4);
|
||||
padding: ($padding-side * .5) ($padding-side * .25);
|
||||
|
||||
.backlogs-panel-inner {
|
||||
padding: 0 ($padding-side / 4);
|
||||
padding: 0 ($padding-side * .25);
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
padding: $padding-side ($padding-side / 2);
|
||||
padding: $padding-side ($padding-side * .5);
|
||||
|
||||
.backlogs-panel-inner {
|
||||
padding: 0 ($padding-side / 2);
|
||||
padding: 0 ($padding-side * .5);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ $story-sp-input-width: 50px;
|
||||
@include nice-shadow(1);
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 0 0 ($padding-side / 2);
|
||||
margin: 0 0 ($padding-side * .5);
|
||||
border-radius: $border-radius-large $border-radius-large 0 0;
|
||||
background-color: $gray-100;
|
||||
|
||||
@@ -243,7 +243,7 @@ $story-sp-input-width: 50px;
|
||||
}
|
||||
|
||||
.editing {
|
||||
$editor-padding: (($header-line-height - $input-height-base) / 2);
|
||||
$editor-padding: (($header-line-height - $input-height-base) * .5);
|
||||
|
||||
.editors {
|
||||
display: block;
|
||||
@@ -823,7 +823,7 @@ $story-sp-input-width: 50px;
|
||||
//
|
||||
|
||||
#show_completed_sprints {
|
||||
margin-left: $padding-side / 2;
|
||||
margin-left: $padding-side * .5;
|
||||
color: $gray-950;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
1
svg/icon-star.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="red" d="M1728 647q0 22-26 48l-363 354 86 500q1 7 1 20 0 21-10.5 35.5t-30.5 14.5q-19 0-40-12l-449-236-449 236q-22 12-40 12-21 0-31.5-14.5t-10.5-35.5q0-6 2-20l86-500-364-354q-25-27-25-48 0-37 56-46l502-73 225-455q19-41 49-41t49 41l225 455 502 73q56 9 56 46z"/></svg>
|
||||
|
After Width: | Height: | Size: 363 B |
1
svg/icon-tag.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="red" d="M576 448q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm1067 576q0 53-37 90l-491 492q-39 37-91 37-53 0-90-37l-715-716q-38-37-64.5-101t-26.5-117v-416q0-52 38-90t90-38h416q53 0 117 26.5t102 64.5l715 714q37 39 37 91z"/></svg>
|
||||
|
After Width: | Height: | Size: 369 B |